gpt4 book ai didi

android - 每周发送一次通知

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:20 25 4
gpt4 key购买 nike

我想通知用户回答每周的问题。即使我的应用程序没有运行,我也需要向用户发送通知。通知将每周发送一次。当用户单击通知时,我的应用程序将打开。我通过 Timer 和 TimerTask() 尝试了这个。这会在我的应用程序运行时通知用户。我如何在应用程序未运行时向用户发送通知。

谁能帮帮我?

最佳答案

以下代码将 Alarmmanager 与 BroadcastReceiver 结合使用,这将帮助您实现您的需求。

在您的 Activity 中:

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() - 表示闹钟将在当前时间触发,您可以传递一天中的恒定时间(以毫秒为单位)。

然后像这样创建一个 Receiver 类,

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());
}
}

您还必须在您的 list 文件中注册您的 BroadcastReceiver 类,如下所示。在您的 AndroidManifest.xml 文件中,在标记内,

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

这里“com.example.receivers.Receiver”是我的包裹和我的收件人名字。

关于android - 每周发送一次通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com