我想在通知栏中放置一个通知,该通知在按下时将启动我的应用程序。尽管这样做没有问题,但我的用户也希望在重新启动后发出通知。他们有另一个供应商提供的应用程序来执行此操作。
我能找到的所有内容都表明该应用程序必须正在运行才能显示通知。有任何想法吗?
最佳答案
您需要添加一个在重新启动后启动服务的接收器。
在 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之类的第三方为您处理所有事情。