Я делаю приложение, которое показывает уведомление каждый раз, когда экран разблокирован. С этой целью я создал BroadcastReceiver, который запускает Сервис. Вот мой манифест:
<?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="android.example.example">
<application
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="example"
android:largeHeap="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:hardwareAccelerated="true"
android:label="example" />
<receiver android:name=".RestartNotifications"
android:enabled="true"
android:exported="true">
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="android.intent.action.USER_PRESENT"/>
</intent-filter>
</receiver>
<service
android:name=".NotificationService"
android:enabled="true"
android:exported="true"/>
</application>
</manifest>
Приемник вещания действительно прост и выглядит следующим образом:
public class RestartNotifications extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Hello World!", Toast.LENGTH_LONG).show();
Intent i = new Intent(context, NotificationService.class);
context.startService(i);
}
}
Я добавил тост, чтобы проверить, произошла ли ошибка из-за не получениятрансляция или из-за ошибки в сервисе. Когда я устанавливаю приложение, оно работает нормально, и уведомление появляется каждый раз, когда я разблокирую телефон, даже если другое приложение открыто, а мое остановлено. Однако, если я убью свое приложение, когда я разблокирую телефон, уведомления больше не будут появляться.