使用 ACTION_MANAGE_OVERLAY_PERMISSION 在后台启动 activity
Start an activity in backround by using ACTION_MANAGE_OVERLAY_PERMISSION
我想通过使用 ACTION_MANAGE_OVERLAY_PERMISSION 在后台启动一个 activity(即使应用程序被终止)。它仅在应用程序位于前台时有效。我的代码在下面;
1.Manifest 文件
<uses-permission android:name="android.permission.WAKE_LOCK" />
<receiver
android:name=".digitalclock.DigitalClockReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.SCREEN_ON" />
<action android:name="android.intent.action.SCREEN_OFF" />
</intent-filter>
</receiver>
2-BroadcastReceiver
override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.action.equals(Intent.ACTION_SCREEN_OFF)) {
if (Build.VERSION.SDK_INT >= 29) {
val intent2 = Intent(context, DigitalClockActivity::class.java)
intent2.putExtra("unlock_screen", true)
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context?.startActivity(intent2)
}
}
}
我还在 Broadcast 中启动了一个服务,它总是接收到 intent-filter,即使应用程序被杀死。服务 class 也启动但 activity 没有。
尝试替换
val intent2 = Intent(context, DigitalClockActivity::class.java)
带有硬编码包和 class 名称
val i = Intent();
i.setClassName("com.test", "com.test.DigitalClockActivity")
将包和 activity class 名称更改为您自己的!
我想通过使用 ACTION_MANAGE_OVERLAY_PERMISSION 在后台启动一个 activity(即使应用程序被终止)。它仅在应用程序位于前台时有效。我的代码在下面;
1.Manifest 文件
<uses-permission android:name="android.permission.WAKE_LOCK" />
<receiver
android:name=".digitalclock.DigitalClockReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.SCREEN_ON" />
<action android:name="android.intent.action.SCREEN_OFF" />
</intent-filter>
</receiver>
2-BroadcastReceiver
override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.action.equals(Intent.ACTION_SCREEN_OFF)) {
if (Build.VERSION.SDK_INT >= 29) {
val intent2 = Intent(context, DigitalClockActivity::class.java)
intent2.putExtra("unlock_screen", true)
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context?.startActivity(intent2)
}
}
}
我还在 Broadcast 中启动了一个服务,它总是接收到 intent-filter,即使应用程序被杀死。服务 class 也启动但 activity 没有。
尝试替换
val intent2 = Intent(context, DigitalClockActivity::class.java)
带有硬编码包和 class 名称
val i = Intent();
i.setClassName("com.test", "com.test.DigitalClockActivity")
将包和 activity class 名称更改为您自己的!