屏幕关闭时如何保持活动运行/活动?
4 回答
您将需要使用PARTIAL_WAKE_LOCK来确保您的活动保持活跃。android.permission.WAKE_LOCK
必须在您的清单中请求。但是,电池会消耗得更快,因此请记住尽快释放唤醒锁。
或者,改用服务
在 Activity 的 onCreate 中,放入以下行:
Context mContext = getApplicationContext();
PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
final PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PARTIAL_WAKE_LOCK,"motionDetection:keepAwake");
wakeLock.acquire();
//Place this where you no longer need to have the processor running
wakeLock.release();
按下电源按钮后,如果您关闭了该活动,该活动仍应运行。
如果您像我一样,并且正在收集加速度计数据,请务必sensorManager.unregisterListener(this);
从应用程序的 onPause 部分中删除默认设置。
还有一个好办法。几个月前我发现了这个,它可以节省一点电池寿命;)
http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/
确保清单文件中没有任何活动的“ android:noHistory="true" ”。当应用程序离开屏幕或屏幕关闭时,它会终止活动。
如果您希望您的应用程序即使屏幕关闭也保持活动状态,我认为您不需要做任何额外的事情:我的应用程序没有任何额外的代码,当我关闭屏幕并打开它时它仍然存在。但!Android 操作系统可能会在屏幕关闭一段时间后将其杀死,因此您可能应该在清单文件中使用 WAKE_LOCK。或者,您可以在清单文件中添加 'android:keepScreenOn="true"',以在您的应用程序运行时始终保持屏幕开启。