Android"东西"在运行期间调用onPause of Activity

时间:2016-03-13 21:53:20

标签: android android-activity android-lifecycle onpause

我尝试实现录制应用。我对Activity life cycle有疑问。过了一段时间(5分钟,25分钟,27分钟,......它是不同的)"东西"调用onPause的{​​{1}}方法。这对我来说是个问题,因为我有一些版本(ActivityCamerarecording等等。当我用GPS方法评论所有版本时,一切正常,我可以录制超过60分钟。没人接触设备。

我可以获取信息,谁是调用方onPause方法?

编辑:
我尝试了没有任何逻辑的新创建的应用程序,并且也调用onPause(20分钟后)。我认为,这个问题已经无法应用。我有设备Huawei Honor 4C,Android 5.1.1和EMUI 3.1。也许设备有一些"看门狗逻辑"。

EDIT2:
我用原生相机应用程序尝试(使用华为)记录,并在15分钟后自动停止。 (SD卡未满,文件不具有> 4GB(FAT32))。 我尝试(使用Nexus)和应用程序运行超过60分钟。没有调用onPause。

已解决:它取决于设备。

我启用了wakeLock(我在清单中获得了WAKE_LOCK权限。):

onPause

结构:

//KEEP SCREEN ON
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "MyWakelockTag");
wakeLock.acquire();

Activity (MediaProjectionActivity4 class) | | -- Thread of recording video (ScreenRecorder class) | -- Thread of recording audio (AudioThread class) | -- Thread of writing to file (SyncFile class) 添加到Log.e(TAG, "onPause()", new RuntimeException());方法后。 (onPause在12分钟后被调用)。我在没有过滤的情况下添加了LogCat调用onPause的前后日志消息。

onPause

2 个答案:

答案 0 :(得分:0)

Android负责调用Activity上的所有生命周期方法。当活动不再接收输入焦点时调用它,这意味着可能在其上显示其他内容,例如对话框。您可以阅读该文档以及其他生命周期方法here

答案 1 :(得分:0)

可能有几件事负责,但你可以通过让应用程序不要睡觉来阻止调用onPause

你可以设置

setKeepScreenOn(true)

在视图中涉及,这也将起作用

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)