Казалось бы, ваша лучшая ставка - BroadcastReceiver
. Вы можете создать новый BroadcastReceiver, который прослушивает Намерение, чтобы инициировать ваше уведомление и запустить службу следующим образом:
public class MyIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context _context, Intent _intent) {
if (_intent.getAction().equals(MY_INTENT)) {
// TODO Broadcast a notification
_context.startService(new Intent(_context, MyService.class));
}
}
}
И вы можете зарегистрировать этот IntentReceiver непосредственно в манифесте приложения без необходимости включать его в действие:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.domain.myapplication">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<service android:enabled="true" android:name="MyService"></service>
<receiver android:enabled="true" android:name="MyIntentReceiver">
<intent-filter>
<action android:name="MY_INTENT" />
</intent-filter>
</receiver>
</application>
</manifest>