调用PowerManager.goToSleep时,活动会被销毁

时间:2012-07-05 14:13:07

标签: android android-activity

我有一个活动有时被系统破坏,作为对被调用的PowerManager.goToSleep(...)的响应。行为不一致,我无法弄清楚原因。

以下是我的活动onCreate的相关代码,它是代码中最相关的部分:

   protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        requestWindowFeature(android.view.Window.FEATURE_NO_TITLE);

        IntentFilter userprsentfilter = new IntentFilter(Intent.ACTION_USER_PRESENT);
        mUserPresentReceiver = new UserPresentReceiver();
        registerReceiver(mUserPresentReceiver,userprsentfilter);

        Log.d(TAG, "created.");
    }

    protected void onDestroy() {
        Log.d(TAG, "finished.");
    }

某处,某些远程服务,有时是活动本身,

  

PowerManager.goToSleep(SystemClock.uptimeMillis())

调用

导致活动被破坏。

任何人都可以了解系统在调用PowerManager.goToSleep时有时会破坏活动的原因吗?此外,有没有办法确保或降低系统破坏活动的机会?我可以肯定地说,当发生这种情况时,资源并不稀缺。

1 个答案:

答案 0 :(得分:3)

所有Android应用都可能随时关闭。当应用程序处于后台运行,消耗太多系统资源或手机休眠时,可能会发生这种情况。你不能(并且不应该试图)改变这种行为:它是故意这样做的,并且有很好的理由。

如果您的操作需要在这些情况下继续运行,则需要将其作为服务实现。这样即使手机正在睡觉也可以运行。