我有一个活动有时被系统破坏,作为对被调用的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时有时会破坏活动的原因吗?此外,有没有办法确保或降低系统破坏活动的机会?我可以肯定地说,当发生这种情况时,资源并不稀缺。
答案 0 :(得分:3)
所有Android应用都可能随时关闭。当应用程序处于后台运行,消耗太多系统资源或手机休眠时,可能会发生这种情况。你不能(并且不应该试图)改变这种行为:它是故意这样做的,并且有很好的理由。
如果您的操作需要在这些情况下继续运行,则需要将其作为服务实现。这样即使手机正在睡觉也可以运行。