我目前正在使用三星Galaxy S3更新我的Android应用程序,并感到震惊的是我无法停止手机暂停我的应用程序。使用我们部门的Galaxy S2不会出现这个特殊问题,如果屏幕变黑,应用程序仍会将数据流式传输到SD卡和wifi网络。 S3停止任何数据流。
我现在尝试摆弄能量和显示设置,但到目前为止我还没有解决问题的方法。我的互联网搜索也没有成功。
可能的解决方案是使新手机生根,从而使高级设置可见 或增加超时(我不喜欢解决方案)。
您是否有任何想法如何解决可能启发我的问题或一般性意见? 日Thnx!
BTW:这是有问题的应用(没有广告): Google Play Link
答案 0 :(得分:2)
我有一个需要做类似事情的应用程序(它是一个正在运行的培训师,因此当用户将手机放在口袋里半小时左右时,它需要继续说话。)
首先,对于其他人阅读的警告:如果你不需要,不这样做。如果你只需要定期而不是连续地做某事,可以考虑使用AlarmManager,它可以不时地将手机从睡眠中唤醒以做某事,所以不会如此努力地击打用户的电池。
但是,如果您确定需要保持手机清醒,则需要使用WakeLock。这大致是我在服务onStartCommand
中所做的:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK;, "RunClockService");
mWakeLock.acquire();
...其中mWakeLock
是PowerManager.WakeLock
类型的实例变量。 PARTIAL_WAKE_LOCK
使CPU保持运行,但不会保持屏幕开启。根据文档,“RunClockService”标签仅用于调试。将其更改为您的班级名称。
然后,当我完成需要让手机保持清醒时:
mWakeLock.release();
您还需要向WAKE_LOCK
添加AndroidManifest.xml
权限:
<uses-permission android:name="android.permission.WAKE_LOCK"/>