11

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

4

4 回答 4

12

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

或者,改用服务

于 2012-08-15T23:40:59.920 回答
2

在 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 部分中删除默认设置。

于 2020-10-24T07:30:00.157 回答
1

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

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

于 2012-08-15T23:43:06.567 回答
1

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

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

于 2012-08-16T02:34:43.783 回答