我有一个要求是禁用键盘锁并在发生任何警报时打开屏幕。 场景是:我的应用程序正在前台运行,主要活动正在屏幕上显示,设备进入睡眠模式,当发生任何警报时,我必须打开屏幕并禁用键盘锁,因为我正在使用标志onResume活动方法中的FLAG_TURN_SCREEN_ON和FLAG_DISMISS_KEYGUARD,但是当主要活动在屏幕上运行时,似乎它没有调用活动的onresume方法,因此我无法打开并禁用键盘锁。 所以我想知道,当屏幕打开时,如果我的活动显示在屏幕上,那么将调用哪个活动生命周期?
请帮助我理解这个问题。
此致 皮克斯
答案 0 :(得分:1)
这里是我的应用程序中的一段代码希望这个帮助
ALARMRECEIVER.class
public final class ALARMRECEIVER extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent intent2 = new Intent(context,unlock.class);
intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent2);
}
}
unlock.class
public void onCreate(Bundle savedInstancestate){
final Window win = this.getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}
答案 1 :(得分:0)
当您的屏幕打开并显示活动时,您将在onResume()中获得回调。
但在您的情况下,它不会发生,因为活动仍然没有出现在前台。
而不是将一些听众放到你的特定警报中,然后你会对事件有所了解(在你的情况下发出警报)然后执行你的行动。