显示Android的通知每五分钟 [英] Show android notification every five minutes

查看:130
本文介绍了显示Android的通知每五分钟的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道如何设置时间的通知。我想设置的通知每五分钟, 所以帮我做的。

 公共类FirstActivity扩展活动
{
    私有静态最终诠释HELLO_ID = 1;
    //公共静态最终诠释FLAG_AUTO_CANCEL = 0;`输入code here`
    @覆盖
    保护无效的onCreate(包savedInstanceState){
        // TODO自动生成方法存根
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.firstactivity);

        字符串NS = Context.NOTIFICATION_SERVICE;
        NotificationManager mNotificationManager =(NotificationManager)getSystemService(NS);

        INT图标= R.drawable.icon;
        CharSequence的tickerText =你好;
        时长= System.currentTimeMillis的();

        通知通知=新的通知(图标,tickerText时);

        RemoteViews内容查看=新RemoteViews(getPackageName(),R.layout.statusbarnotification);
        contentView.setImageViewResource(R.id.image,R.drawable.icon);
        contentView.setTextViewText(R.id.text,你好,这条消息是在自定义扩展视图);
        notification.contentView =内容查看;
        notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL;
        意图notificationIntent =新的意图(getApplicationContext(),SecondActivity.class);
        // PendingIntent contentIntent = PendingIntent.getActivity(此,0,notificationIntent,0);
        PendingIntent contentIntent = PendingIntent.getActivity(此,0,notificationIntent,0);
        notification.contentIntent = contentIntent;
        mNotificationManager.notify(HELLO_ID,通知);
    }

}
 

解决方案

我认为最好的办法就是创建设置通知的服务,然后激活使用AlarmManager服务。
这是在code为AlarmManager:

 私人无效startAlarm(){
    AlarmManager alarmManager =(AlarmManager)this.getSystemService(this.ALARM_SERVICE);
    时长= System.currentTimeMillis的(); //通知时间
    意向意图=新的意图(这一点,ReminderService.class);
    PendingIntent pendingIntent = PendingIntent.getService(此,0,意图,0);
    alarmManager.setRepeating(AlarmManager.RTC,当,(AlarmManager.INTERVAL_FIFTEEN_MINUTES / 3),pendingIntent);
}
 

要控制时间间隔使用常量或只需插入自己的值(以毫秒为单位)。

下面的服务:

 公共类ReminderService扩展IntentService {
    私有静态最终诠释NOTIF_ID = 1;

    公共ReminderService(){
        超级(ReminderService);
    }

    @覆盖
      保护无效onHandleIntent(意向意图){
        NotificationManager纳米=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
        时长= System.currentTimeMillis的(); //通知时间
        通知通知=新的通知(R.drawable.icon,提醒,当);
        notification.defaults | = Notification.DEFAULT_SOUND;
        notification.flags | = notification.FLAG_AUTO_CANCEL;
        意图notificationIntent =新的意图(这一点,YourActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(此,0,notificationIntent,0);
        notification.setLatestEventInfo(getApplicationContext(),是时候,你现在应该打开应用程序,contentIntent);
        nm.notify(NOTIF_ID,通知);
    }

}
 

I want to know how to set time for notification. I want to set notification every five minutes, so help me do that.

public class FirstActivity extends Activity
{
    private static final int HELLO_ID = 1;
    //public static final int FLAG_AUTO_CANCEL = 0;`enter code here`
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.firstactivity);

        String ns = Context.NOTIFICATION_SERVICE;
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);

        int icon = R.drawable.icon;
        CharSequence tickerText = "Hello";
        long when = System.currentTimeMillis();

        Notification notification = new Notification(icon, tickerText, when);

        RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.statusbarnotification);
        contentView.setImageViewResource(R.id.image, R.drawable.icon);
        contentView.setTextViewText(R.id.text, "Hello, this message is in a custom expanded view");
        notification.contentView = contentView;
        notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL;
        Intent notificationIntent = new Intent(getApplicationContext(), SecondActivity.class);
        //PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
        notification.contentIntent = contentIntent;
        mNotificationManager.notify(HELLO_ID, notification);
    }

}

解决方案

I think that the best way will be to create a service that sets the notification and then activate the service using AlarmManager.
That's the code for the AlarmManager:

private void startAlarm() {
    AlarmManager alarmManager = (AlarmManager) this.getSystemService(this.ALARM_SERVICE);
    long when = System.currentTimeMillis();         // notification time
    Intent intent = new Intent(this, ReminderService.class);
    PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, 0);
    alarmManager.setRepeating(AlarmManager.RTC, when, (AlarmManager.INTERVAL_FIFTEEN_MINUTES / 3), pendingIntent);
}

To control the interval use the constant values or just insert your own value (in milliseconds).

Here is the Service:

public class ReminderService extends IntentService {
    private static final int NOTIF_ID = 1;

    public ReminderService(){
        super("ReminderService");
    }

    @Override
      protected void onHandleIntent(Intent intent) {
        NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        long when = System.currentTimeMillis();         // notification time
        Notification notification = new Notification(R.drawable.icon, "reminder", when);
        notification.defaults |= Notification.DEFAULT_SOUND;
        notification.flags |= notification.FLAG_AUTO_CANCEL;
        Intent notificationIntent = new Intent(this, YourActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent , 0);
        notification.setLatestEventInfo(getApplicationContext(), "It's about time", "You should open the app now", contentIntent);
        nm.notify(NOTIF_ID, notification);
    }

}

这篇关于显示Android的通知每五分钟的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆