【发布时间】:2020-06-30 13:55:12
【问题描述】:
我想在设备解锁时开始一项活动,但此代码不起作用:
AndroidManidest.xml:
<receiver android:name=".ScreenReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.SCREEN_ON" />
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.intent.action.USER_PRESENT"/>
</intent-filter>
</receiver>
ScreenRececiver.kt:
override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.action.equals(Intent.ACTION_USER_PRESENT) ||
intent?.action.equals(Intent.ACTION_SCREEN_ON) ||
intent?.action.equals(Intent.ACTION_BOOT_COMPLETED)) {
var myIntent = Intent(context, MainActivity::class.java)
myIntent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context?.startActivity(myIntent)
}
}
【问题讨论】:
-
这段代码不起作用到底是什么意思?
-
解锁手机后没有调用activity。理论上,这段代码会导致这种情况发生
-
隐式广播不再适用于 Android 8+ 中清单声明的接收器。 developer.android.com/guide/components/broadcasts#android_80
标签: android kotlin android-intent android-activity broadcastreceiver