来自IntentService的通知

时间:2015-05-18 17:15:38

标签: android android-service intentservice

我开发了一个应该在某个时间提醒我的应用程序。因此,我实现了一个启动通知的IntentService。问题是,当应用程序处于前台或至少在后台打开时,将创建通知。当我通过任务管理器关闭应用程序时,通知不再运行。

我使用了错误的服务吗?或者我必须创造一些东西吗?

意向服务类中的

private static final String serviceName = "sebspr.de.deadlines.DeadLineService";

public DeadLineService() {
    super(serviceName);
}

@Override
protected void onHandleIntent(Intent intent) {

    Context ctx = getApplicationContext();
    Intent intent = new Intent(ctx, DeadLineService.class);
    PendingIntent pIntent = PendingIntent.getActivity(ctx, 0, intent, 0);


    String title = getTitle(list.size());
    String text = getText(list);
    Notification noti = new Notification.Builder(ctx)
            .setContentTitle(title)
            .setContentText(text).setSmallIcon(R.mipmap.ic_notfi)
            .setContentIntent(pIntent)
            .build();
    NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
    // hide the notification after its selected
    noti.flags |= Notification.FLAG_AUTO_CANCEL;

    notificationManager.notify(0, noti);



}

在MainActivity中:

Intent msgIntent = new Intent(this, DeadLineService.class);
startService(msgIntent);

更新

考虑到我的实际问题,解决方案是看看ArlarmManager。 IntentService在这里是错误的方式。我在这里找到了一个很好的教程:AlarmManger Example

2 个答案:

答案 0 :(得分:1)

实际上你可以尝试让你的应用程序在被杀后保持活着,但它可能会让你的用户感到烦恼......所以,请注意......

How to save Alarm after app killing?

答案 1 :(得分:1)

不应该担心用户通过任务管理器查杀应用程序。如果发生这种情况,你真的不应该自动开始备份。它不是一种用户友好的做事方式。

应该担心的是系统重启,在这种情况下,您可以注册您的应用以在设备开启时收到通知。

查看see example答案,了解有关在手机开机时启动服务的详细信息。

同时开始使用您的服务this

@Override
public int onStartCommand(Intent intent, int flags, int startId) { 
    return START_STICKY;
}