如何在屏幕关闭时保持活动运行/活动?
答案 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);
。