当从后台恢复时重新启动应用程序
问题描述:
当我的应用程序被其他进程终止时,我可以防止应用程序恢复吗?当从后台恢复时重新启动应用程序
我有问题,我有Singleton
类实例在Application class
,它通过应用程序持有我关于用户和东西从API
收集的所有信息。当我从后台打开应用程序(如果它被某个进程杀死),我在用户模型(图片路径,名称...)和应用程序压缩上获得null
。
对我来说最好的方式就是从启动屏幕重新启动应用程序,并重新获得所有信息,而不是恢复。任何解决方案?
答
我可以防止应用程序在被其他进程杀死时恢复吗?
有三种方法的应用可以是 “恢复”,通过调用要么onCreate
,onStart
,或onResume
。哪一个被调用取决于你的应用程序如何被“暂停”,以及在这种状态下发生了什么。
onResume
如下,其中当另一个应用被带到前景发生。
onStart
(onRestart
)如下onStop
,当你的应用程序将不再可见时发生。
onCreate
如下或onStop
如果你的内存是输给了另一个应用程序。
当我打开应用程序从背景(如果它是由某个进程杀死)用户模型我 越来越空值(图片的路径,名称...)
尝试在onSaveInstanceState
坚持这个用户数据
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putString(STATE_USER, mUser);
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
和恢复它在任一onCreate
或onRestoreInstanceState
static final String STATE_USER = "user";
private String mUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Check whether we're recreating a previously destroyed instance
if (savedInstanceState != null) {
// Restore user data from saved state
mUser = savedInstanceState.getString(STATE_USER);
}
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onRestoreInstanceState(savedInstanceState);
text.setText(savedInstanceState.getString(STATE_USER));
}
你能告诉你如何使用的usermodel内部重新创建活动/片段? –
https://developer.android.com/guide/components/activities/index.html下的所有章节 – samosaris