在一个星期发送一次通知 [英] Send notification once in a week

查看:136
本文介绍了在一个星期发送一次通知的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要通知有关应答每周questions.I需要将通知发送给用户,用户甚至我的应用程序是不是running.The通知将在一个星期发送一次。 当用户点击通知我的应用程序将变得开放。 我通过定时器和TimerTask()尝试了这一点。这将通知用户,当我的应用程序是我running.How可以发送通知给用户,而应用程序没有运行。

I want to notify the user about answer the weekly questions.I need to send the notification to the user even my app is not running.The notification will send once in a week. When user clicks the notification my app will gets open. I tried this via Timer and TimerTask().This notifies the user when my app is running.How can I send the notification to the user while app is not running.

任何人都可以帮我吗?

推荐答案

以下code使用Alarmmanager与BroadcastReceiver的,这将帮助你实现你的需求。

The following code uses Alarmmanager with BroadcastReceiver which will help you out achieving your need.

在你的活动:

Intent intent = new Intent(MainActivity.this, Receiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, REQUEST_CODE, intent, 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(am.RTC_WAKEUP, System.currentTimeInMillis(), am.INTERVAL_DAY*7, pendingIntent);

System.currentTimeInMillis() - 表示该报警将触发在当前的时间,你可以通过每天的固定时间(毫秒)

System.currentTimeInMillis() - denotes that the alarm will trigger at current time, you can pass a constant time of a day in milliseconds.

然后创建一个接收器类这样的事情,

Then create a Receiver class something like this,

public class Receiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        showNotification(context);
    }

    public void showNotification(Context context) {
        Intent intent = new Intent(context, AnotherActivity.class);
        PendingIntent pi = PendingIntent.getActivity(context, reqCode, intent, 0);
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.android_icon)
            .setContentTitle("Title")
            .setContentText("Some text");
        mBuilder.setContentIntent(pi);
        mBuilder.setDefaults(Notification.DEFAULT_SOUND);
        mBuilder.setAutoCancel(true);
        NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationManager.notify(reqCode, mBuilder.build());
    }
}

另外,你必须注册你的BroadcastReceiver类的清单文件,如下所示。 在你的Andr​​oidManifest.xml文件,里面的标签

Also you have to register your BroadcastReceiver class in your manifest file, like the following. In your AndroidManifest.xml file, inside tag,

<receiver android:name="com.example.receivers.Receiver"></receiver>

下面com.example.receivers.Receiver是我的包,我的接收器名称。

Here "com.example.receivers.Receiver" is my package and my receiver name.

这篇关于在一个星期发送一次通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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