我的应用似乎没问题。但是当我再次打开时,当我尝试清理我的Galaxy S4上的原生内存时,应用程序似乎都是错误的并且崩溃了NullPointerException
。当应用程序长时间打开时,也会发生同样的情况。
当有这种情况发生时,有没有办法永久关闭我的应用程序?
我已经用
关闭了db.close();
finish();
只需要知道什么时候
答案 0 :(得分:3)
在某些情况下,您的活动会因应用程序的正常行为而被销毁,例如当用户按下“返回”按钮或您的活动通过调用finish()
发出自己的破坏信号时。如果系统当前已停止并且长时间未使用,或者前台活动需要更多资源,系统也可能破坏您的活动,因此系统必须关闭后台进程才能恢复内存。
默认情况下,系统使用Bundle instance state
到save information
关于活动布局中的每个View对象(例如输入EditText对象的文本值)。因此,如果您的活动实例被销毁并重新创建,则布局的状态将恢复到之前的状态,而您无需代码。但是,您的活动可能包含您要恢复的更多状态信息such as member variables that track the user's progress in the activity
。
你必须将这些数据保存在onSaveInstanceState(Bundle outState)并使用 onRestoreInstanceState(Bundle savedInstanceState)
http://developer.android.com/training/basics/activity-lifecycle/recreating.html
答案 1 :(得分:1)
嘿,我认为它可以帮助您获得解决方案:
只需在按钮EXIT click上编写此代码即可。
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("LOGOUT", true);
startActivity(intent);
在MainActivity.class的 onCreate()方法中,将下面的代码写为第一行,
if (getIntent().getBooleanExtra("LOGOUT", false))
{
finish();
}