Broadcast Receiver App Activity Launching



我正在制作一个android闹钟应用程序,我想在到达闹钟时间时显示闹钟活动。问题是活动在应用程序中打开,但应用程序没有自动启动.

我想让我的闹钟活动在闹钟时间到达时出现在前台,无论应用程序是否打开。

清单文件

`<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="com.example">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<application
//Removed unwanted parts
<receiver
android:name=".classes.AlarmReceiver"
android:enabled="true"
android:exported="true"
android:permission="TODO">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
</manifest>

这是我想要准时出现的闹钟活动。

class AlarmPage : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)supportRequestWindowFeature(Window.FEATURE_NO_TITLE);window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED,)
setContentView(R.layout.activity_alarm_page)
val mediaPlayer = MediaPlayer.create(this, R.raw.main_alarm)
mediaPlayer?.isLooping = true
mediaPlayer?.start()
findViewById<Button>(R.id.stop_button).setOnClickListener {
mediaPlayer?.stop()
mediaPlayer?.release()
finish()
}
}
}`

这是Alarm Receiver类

' class AlarmReceiver: BroadcastReceiver() {

override fun onReceive(context: Context, intent: Intent?) {
val launchIntent = Intent(context,AlarmPage::class.java)
launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP)
context.startActivity(launchIntent)
}

} '

闹钟接收器类打开活动的时间,但当我不使用我的应用程序或我的应用程序在后台应用程序不自动打开的时间,我必须手动打开应用程序,看看活动是否打开。

实际上我自己找到了答案,那就是一切都是正确的,我只需要手动允许我的应用程序"绘制或允许其他应用程序";许可。

清单中提到的

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

最新更新