Android 6.0.1 应用开机自启动
Android 6.0.1 application auto start after boot
我想在设备启动后立即启动 MainActivity
。我尝试了多种解决方案,但没有一个有效。目前,我有这个。
AndroidManifest.xml
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name="installer.common.InstallerBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
InstallerBroadcastReceiver.kt
class InstallerBroadcastReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val i = Intent(context, MainActivity::class.java)
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
i.putExtra("test", 1)
context.startActivity(i)
}
}
MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
if (intent.hasExtra("test")) {
someMethodHere()
}
}
有什么错误的建议吗?
试着拆分你的intent-filter
<intent-filter>
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
设备 (zkteco) 似乎有问题,我得到这个错误 I/BackgroundManagerService: prevent from boot complete broadcast: com.mypackagename
在我试过的其他设备上,它工作正常。
我想在设备启动后立即启动 MainActivity
。我尝试了多种解决方案,但没有一个有效。目前,我有这个。
AndroidManifest.xml
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name="installer.common.InstallerBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
InstallerBroadcastReceiver.kt
class InstallerBroadcastReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val i = Intent(context, MainActivity::class.java)
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
i.putExtra("test", 1)
context.startActivity(i)
}
}
MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
if (intent.hasExtra("test")) {
someMethodHere()
}
}
有什么错误的建议吗?
试着拆分你的intent-filter
<intent-filter>
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
设备 (zkteco) 似乎有问题,我得到这个错误 I/BackgroundManagerService: prevent from boot complete broadcast: com.mypackagename
在我试过的其他设备上,它工作正常。