在我的应用程序中,我有一个“应用程序”和几个活动。我想在用户按下主页按钮后的特定时间(例如3分钟)后终止我的应用程序。我能够完成“应用程序”的过程,但只要我的活动还活着,他们就会尝试从最后一个状态开始。
Thread isOnDisplayThread = new Thread(new Runnable() {
@Override
public void run() {
Timer mTimer = new Timer();
mTimer.schedule(new TimerTask() {
@Override
public void run() {
Log.d(TAG, (isApplicationOnDisplay) ? "Application on display" : "APPLICATION ON BACKGROUND");
if (!isApplicationOnDisplay) {
notOnDisplayTime++;
if (notOnDisplayTime >= 10) {
Process.killProcess(Process.myPid());
}
} else {
notOnDisplayTime = 0;
}
}
}, 0, 1000);
}
});
isOnDisplayThread.run();
P.S。 isApplicationOnDisplay
是由每个Activity的onPause()
和onResume()
方法控制的静态布尔值。
有没有办法杀死应用程序的所有相关活动?
答案 0 :(得分:1)
(我无法理解为什么每个人都试图杀死他自己的应用程序......)
杀死某个应用程序应该从不由应用程序完成(尽管有时候任务管理员有其优势)。
我能够完成“应用程序”的过程,但只要我的活动还活着,他们就会尝试从最后一个状态开始。
您可以完全控制状态处理,您可以决定某项活动是否继续使用最新状态。如果您不想要当前行为change it,但不要试图杀死您的应用程序。
简而言之: Android操作系统决定是否应该杀死/停止某个应用
知道如何设计android以及如何使用它......
答案 1 :(得分:1)
我建议你,完成所有活动,关闭所有线程,不要干扰背景......:))
答案 2 :(得分:0)
所有活动都不可能立即杀死。
你应该做两件事来杀死活动和服务
1)@Override
public void onBackPressed(){
的onDestroy();
super.onBackPressed();
}
2)你应该在改变意图时申请 的onDestroy();
3)如果需要,你应该申请 @覆盖 public void onConfigurationChanged(Configuration newConfig)