安卓应用程序进入后台后,在一分钟内自动关闭第二个活动

时间:2019-06-28 17:21:38

标签: android android-activity

假设我的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);
}

1 个答案:

答案 0 :(得分:1)

如果没有足够的资源,Android可以自行完成活动。
如果发生这种情况,我想处理程序也不可用。如果您非常想处理活动完成,则需要创建一些类,该类将在活动生命周期(AKA Singleton)中保留下来。那不会让android从内存中删除它。
尽管您还有其他几个问题:
如果您的单身人士处于错误状态,则将无法完成其活动。
将活动置于单例状态将导致内存泄漏。
总结一下,尝试更改活动生命周期是一个坏主意。也许某些Service类可以在后台解决您的任务?