如何在屏幕关闭时保持活动运行?

时间:2012-08-15 23:29:09

标签: android

如何在屏幕关闭时保持活动运行/活动?

4 个答案:

答案 0 :(得分:7)

您需要使用PARTIAL_WAKE_LOCK来确保您的活动保持有效。必须在您的清单中请求android.permission.WAKE_LOCK。但是,电池耗电会更快,所以请记得尽快释放唤醒锁。

或者,使用 Service 代替

答案 1 :(得分:1)

还有一个好方法。 几个月前我发现了这个,它节省了一点电池寿命;)

http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/

答案 2 :(得分:1)

请确保您的清单文件中没有任何活动的'android:noHistory =“true”'。当应用程序离开屏幕或屏幕关闭时,它会终止活动。

如果你希望你的应用程序保持活动状态,即使屏幕关闭,我认为你不需要做任何额外的事情:我的应用程序没有任何额外的代码,当我关闭屏幕并打开它时还在那儿。但! Android操作系统可能会在屏幕关闭一段时间后将其杀死,因此您应该在清单文件中使用WAKE_LOCK。或者您可以将“android:keepScreenOn =”true“'添加到清单文件中,以便在应用程序运行时始终保持屏幕显示。

答案 3 :(得分:1)

在您的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();

按下电源按钮后,如果关闭了活动,则该活动仍应运行。

如果您像我一样,并且正在收集加速度计数据,请确保从应用程序的onPause部分删除默认的sensorManager.unregisterListener(this);