Tag: wakelock

开始活动后立即调用OnPause和OnStop()

我有一个活动,当它启动时需要打开屏幕(如果已closures)。 所以在onCreate,我有: this.getWindow().setFlags( WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 在广播接收机的帮助下使用这个function,我可以使我的活动显示每当它从广播接收机启动。 但是问题很奇怪,活动生命周期以这种方式调用onPause()和onResume之后立即开始活动 的onCreate 在onStart 的onResume 在onPause 的onStop 在onStart 的onResume 所以问题是在开始和简历调用两次,停止也调用,我想在onStop()中实现一些逻辑,但与这样的行为应用程序将无法正常工作。 编辑 我发现问题只是由于标志FLAG_SHOW_WHEN_LOCKED。 当设备被locking时。 只有当设备在活动开始之前被locking时才会发生。 PS我使用广播接收器的报警pipe理器,然后从广播接收器开始活动。

如果持有它的应用程序或服务被杀死,Android操作系统是否会释放唤醒锁?

我有关于唤醒的问题。 在下面显示的情况下,android操作系统是否会释放唤醒锁( PARTIAL_WAKE_LOCK如果您需要指定的话),以防止唤醒锁被遗弃并浪费电池直到closures电源(不睡眠)。 案例1-a: 应用程序已经在它的一个线程中获得了wakelock(w / o timeout选项)(在这种情况下请认为是合理的),并且在关键任务完成时它被devise为释放唤醒锁。 应用程序可以被任务pipe理器或臭名昭着的taskkiller杀死,应用程序没有机会让其线程释放wakelock。 那个wakelock发生了什么事? 案例1-b: (如果对案例1-a的回答是“是的,别担心”,那么请忽略这种情况)。与案例1-a相同,但是应用程序给了唤醒锁的超时选项,比如说3秒。 这个超时选项是否保持有效? 案例2-a: 请想象有一个由AlarmManager(通过广播接收器)启动的服务,并且该服务已经获得唤醒锁(不带超时选项)。 这项服务的目的是使获得时间最less。 但不幸的是,由于内存紧缩,Android操作系统select了这个服务来杀死。 (我不知道操作系统在获取wakelock的时候是不是会杀了服务器,但是我猜操作系统并不在意,但是我希望操作系统稍后会释放wakelock。)那个wakelock会发生什么? 案例2-b: (如果对案例2-a的回答是“是,别担心”,那么请忽略这种情况。)与情况2-a相同,但是服务给予唤醒锁的超时选项,例如3秒。 这个超时选项是否保持有效?

BroadcastReceiver与WakefulBroadcastReceiver

有人可以解释一下BroadcastReceiver和WakefulBroadcastReceiver之间的WakefulBroadcastReceiver吗? 在什么情况下我们不得不使用每个Receiver类?

即使手机在睡觉,服务仍在运行?

我在我的应用程序中有一个服务,每10分钟运行一次。 它基本上检查我们的服务器,看看是否一切正常运行,并通知用户任何问题。 我创build了这个应用程序供我们公司内部使用。 我的同事在长周末使用了应用程序,并注意到设备进入睡眠状态时没有执行任何检查。 我的印象是,服务应该继续在后台运行,直到我明确地调用我的代码中的stopService() 。 因此,最终,我的目标是让服务运行,直到用户点击应用程序中的closuresbutton或终止进程。 我听说WakeLock是为了防止屏幕closures,这不是我想要的。 然后我听说另外一个称为部分WakeLock的东西,即使在设备睡着的时候也能保持CPU运行。 后者听起来更接近我所需要的。 我如何获得这个WakeLock,我应该什么时候发布它,还有其他方法呢?

在Android上closures屏幕

我正试图在某个动作发生后打开和closures显示器(让我们只是担心现在closures屏幕)。 从我从wake lock所了解到的,这就是我所拥有的: PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag"); 当我读到其他post在stackoverflow和其他地方,他们似乎告诉我,PARTIAL_WAKE_LOCK将closures屏幕。 但是,如果我阅读SDK说,它只会允许屏幕closures。 所以我认为这是不对的。 任何提示将有所帮助! 谢谢, 麦克风