我想在通知栏中放置一个通知,该通知在按下时将启动我的应用程序。尽管这样做没有问题,但我的用户也希望在重新启动后发出通知。他们有另一个供应商提供的应用程序来执行此操作。

我能找到的所有内容都表明该应用程序必须正在运行才能显示通知。有任何想法吗?

最佳答案

您需要添加一个在重新启动后启动服务的接收器。

在 list 中注册启动完成

<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之类的第三方为您处理所有事情。

09-05 02:31
查看更多