2015-12-02 66 views
0

我有一个应用程序在Play商店中运行,我遇到了一个Android操作系统杀死我的应用程序的问题。如果操作系统杀死了应用程序,处理应用程序活动

Scenario/Steps : 

1) Open app, move to any screen. 
2) Minimise the app by clicking HOME button. 
3) Open several other apps.(say 14 to 15 apps). 
4) And now launch my app it CRASHES!!!!. 

我已经注意到是从应用程序启动画面开始,而不是从它留下的地方开始,因为我的所有数据都将丢失它给了我NULL指针异常。

理想情况下,我的应用程序应该从启动画面开始,因为我将所有数据加载到那里并将其他活动传递给它。

如何检查我的应用程序是否被杀死并从闪屏加载?

我有扩展的应用程序类,但我不知道如何使用它。

+0

操作系统可以摧毁你的应用程序随时需要的内存,你的说法,当你再次点击启动它杀死你的应用程序后,它并没有去为y我们的启动画面? – j2emanue

+0

@ j2emanue这是正确的,但在这种情况下,我希望我的应用程序从启动画面开始。 – user2056563

+0

这就是结束如何使用静态变量作为商店在android – Selvin

回答

0

我想你可能会使用静态变量,只是一个预感。反正你能在你的mainActivity的onCreate或的onResume试试这个:

if (isTaskRoot()) { 
    // This activity is at root of task, so launch main splash screen 
} else { 
    // This activity isn't at root of task, so continue 
} 

但是那从真正的问题越来越远,我认为:相反,我会考虑在的onSaveInstanceState Activity类:

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    // Save the user's current state 
    savedInstanceState.putString("myStaticVariable", sStaticVariableAreBad); 
    // Always call the superclass so it can save the view hierarchy state 
    super.onSaveInstanceState(savedInstanceState); 
} 

然后在的onCreate检查活动之前被破坏:

// Check whether we're recreating a previously destroyed instance 
if (savedInstanceState != null) { 
    // Restore value of members from saved state 
    sStaticVariableAreBad = savedInstanceState.getString("myStaticVariable"); 

} 
+1

谢谢,但isTaskRoot()是什么?我如何使用它? – user2056563