按下后退按钮时保存

Posted

技术标签:

【中文标题】按下后退按钮时保存【英文标题】:Save when back button is pressed 【发布时间】:2014-02-17 15:20:37 【问题描述】:

在我的 android 应用程序中,当按下后退按钮时,我希望应用程序保存。这是我的代码:

@Override
public void onBackPressed() 
    super.onBackPressed();
    Log.d("VIVZ", counter + "Was Saved");

所以当我按下后退按钮时它会退出应用程序,然后当我回到应用程序时它没有保存。

【问题讨论】:

你没有可以保存任何东西的代码 添加更多以识别问题 你想在你定义计数器的地方按下后退按钮保存什么? 【参考方案1】:

按“返回”后,预计 Activity 将完成 - 它的实例状态丢失。你不会调用onSaveInstanceState() - 这是一种帮助保存活动实例状态的方法。

如果您想保存应用程序状态(如果您的计数器属于那里),使用SharedPreferences 可能是最简单的。即使在这种情况下,您也可以考虑将保存状态的代码放在onStop() 而不是onBackPressed()

【讨论】:

【参考方案2】:

试试这个

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) 
    if (keyCode == KeyEvent.KEYCODE_BACK) 
        //Do your saving code
    
    return super.onKeyUp(keyCode, event);

【讨论】:

【参考方案3】:

尝试改用活动生命周期方法。

@Override
onPause()

    //use some kind of SharedPreferences class or FileOutputStream
    //because onPause() is called when the activity is removed from the ui


【讨论】:

以上是关于按下后退按钮时保存的主要内容,如果未能解决你的问题,请参考以下文章

Android Fragment 在按下后退按钮时未保存 UI 状态

按下后退按钮时 UITableView 中的数据会重复

为啥在laravel中按下浏览器的后退按钮时过滤器不起作用?

按下后退按钮时如何退出?

在父活动上按下后退按钮

按下 UINavigationController 的后退栏按钮时执行操作