假设我的android应用程序具有两个活动A和B。活动A启动活动B(A-> B)。当显示活动B时,用户按下“主页”按钮,应用程序进入后台。现在我希望活动B在后台自动关闭(因为它显示了一些秘密信息),例如,在用户按下“主页”按钮后的一分钟内。哪个是实现此目标的最佳方法?
我尝试使用放置在活动B的onStop()中的Handler和postDelayed()来执行此操作,但是当从后台恢复应用程序时,有时似乎不起作用并且活动B仍未完成... < / p>
我的代码是:
@Override
protected void onStop() {
super.onStop();
mLockHandler = new Handler();
mLockRunnable = new Runnable() {
@Override
public void run() {
finish();
}
};
mLockHandler.postDelayed(mLockRunnable, 60 * 1000);
}
答案 0 :(得分:1)
如果没有足够的资源,Android可以自行完成活动。
如果发生这种情况,我想处理程序也不可用。如果您非常想处理活动完成,则需要创建一些类,该类将在活动生命周期(AKA Singleton)中保留下来。那不会让android从内存中删除它。
尽管您还有其他几个问题:
如果您的单身人士处于错误状态,则将无法完成其活动。
将活动置于单例状态将导致内存泄漏。
总结一下,尝试更改活动生命周期是一个坏主意。也许某些Service
类可以在后台解决您的任务?