当从后台恢复时重新启动应用程序

问题描述:

当我的应用程序被其他进程终止时,我可以防止应用程序恢复吗?当从后台恢复时重新启动应用程序

我有问题,我有Singleton类实例在Application class,它通过应用程序持有我关于用户和东西从API收集的所有信息。当我从后台打开应用程序(如果它被某个进程杀死),我在用户模型(图片路径,名称...)和应用程序压缩上获得null

对我来说最好的方式就是从启动屏幕重新启动应用程序,并重新获得所有信息,而不是恢复。任何解决方案?

+0

你能告诉你如何使用的usermodel内部重新创建活动/片段? –

+0

https://developer.android.com/guide/components/activities/index.html下的所有章节 – samosaris

我可以防止应用程序在被其他进程杀死时恢复吗?

有三种方法的应用可以是 “恢复”,通过调用要么onCreateonStart,或onResume。哪一个被调用取决于你的应用程序如何被“暂停”,以及在这种状态下发生了什么。

onResume如下,其中当另一个应用被带到前景发生。

onStartonRestart)如下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); 
} 

和恢复它在任一onCreateonRestoreInstanceState

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)); 
}