Уведомление об андроиде после перезагрузки

Я хочу разместить уведомление в панели уведомлений, которое будет запускать мое приложение при нажатии. Хотя у меня нет проблем с этим, мои пользователи хотят, чтобы уведомление появилось после перезагрузки. У них есть приложение от другого поставщика, который делает это.

Все, что я могу найти, указывает, что приложение должно быть запущено для отображения уведомления. Любые идеи?

Ответ 1

Вам необходимо добавить ресивер, который запускает службу после перезагрузки.

В вашем манифестном регистре для завершения загрузки

<service android:name="com.meCorp.service.MeCorpServiceClass"/>
...
<receiver android:name="com.meCorp.receiver.MyRebootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
...
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

В загрузочном приемнике запустите службу.

public class MyRebootReceiver extends BroadcastReceiver {

       @Override
       public void onReceive(Context context, Intent intent) {
          Intent serviceIntent = new Intent(context, MeCorpServiceClass.class);
          serviceIntent.putExtra("caller", "RebootReceiver");
          context.startService(serviceIntent);
       }
}

Вот пример того, как класс службы запускается в фоновом режиме.

    public class MeCorpServiceClass extends IntentService{

         @Override
         protected void onHandleIntent(Intent intent){
             String intentType = intent.getExtras().getString("caller");
             if(intentType == null) return;
             if(intentType.Equals("RebootReceiver"))
                  //Do reboot stuff
             //handle other types of callers, like a notification.
         }
     }

ИЛИ Просто используйте стороннюю компанию, такую ​​как Urban AirShip, которая обрабатывает все это для вас.