我最近创建了我的第一个Android应用。它是一个非常简单的应用程序,有两个计数器来保持两队在IRL纸牌游戏中的得分。无论如何,如果用户选择在应用程序打开时访问其他应用程序,就像前一样。检查whatsapp并让应用程序在后台运行,它工作正常,大部分时间...如果用户长时间离开应用程序,应用程序往往会重置为它的默认状态,这意味着得分计数器都重置为0,这非常令人沮丧。有没有办法防止这种情况发生?就像在内存中保存应用程序的状态,直到用户返回或类似的东西?应用程序计数器是基本的Textview对象。提前谢谢!
答案 0 :(得分:0)
您无法阻止您的流程被终止。如果您希望数据在您的进程终止后仍然存在,请将数据保存在数据库SharedPreferences
或其他类型的文件中。
答案 1 :(得分:0)
可以通过savedInstanceState变量保存/恢复状态。
@Override public void onCreate(Bundle savedInstanceState) { }
https://developer.android.com/guide/components/activities/activity-lifecycle.html
当用户使用其他应用时,会调用onPause(),onStop()事件。一段时间后,操作系统释放内存并调用onDestroy()。这是你保存任何州的最后机会。
答案 2 :(得分:0)
您需要实现onSaveInstanceState和onRestoreInstanceState
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putInt("int", 1);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
int myInt = savedInstanceState.getInt("int");
}
或使用库:IcePick