android - 当设备从广播接收器锁定时如何显示活动?
问题描述
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent intent2 = new Intent();
intent2.setClass(context, MainActivity.class);
intent2.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
context.startActivity(intent2);
playAlarmSound(context);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP, "MyApp::MyWakeLockTag");
wakeLock.acquire(1000L /*10 minutes*/);
wakeLock.release();
} else {
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP, "MyApp::MyWakeLockTag");
wakeLock.acquire(1000L /*10 minutes*/);
wakeLock.release();
}
}
@Override public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) { super.configureFlutterEngine(flutterEngine);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
setShowWhenLocked(true);
}
解决方案
推荐阅读
- mongodb - SpringBoot如何获取mongodb的查询统计信息
- c# - 如何使用 C# 判断 Json 元素是否存在(使用 Newtonsoft NugetPackages)
- python - 使用 python 启动 TCP 客户端
- python - 在熊猫数据帧上循环(迭代) - 如何选择所需的值?
- eclipse - Eclipse 格式化程序
- php - 为什么 Symfony 5.1 不能识别“routes.php”文件中配置的路由?
- c# - C# float.Parse 忽略文化
- python - Python 2/3:Urllib 错误 - EOF 发生违反协议 (_ssl.c:727)
- reactjs - 打印映射数据的值
- firebase - Flutter Google 登录数据保存到 Firebase Cloud Firestore