我想在通知栏中显示一个通知,按下后会启动我的应用。虽然我这样做没有问题,但我的用户也希望在重新启动后出现通知。他们有来自其他供应商的应用程序。
我能找到的所有内容都表明必须运行该应用才能显示通知。有什么想法吗?
答案 0 :(得分:11)
您需要添加一个重启后启动服务的接收器。
在启动完成的清单注册表中
<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这样的第三方,它可以为您处理所有这些事情。