我想通知用戶有關回答每週的問題。我需要將通知發送給用戶,即使我的應用程序沒有運行。通知將在一週內發送一次。 當用戶點擊通知我的應用程序將被打開。 我試過這個通過Timer和TimerTask()。當我的應用程序正在運行時,它會通知用戶。如何在應用程序未運行時將通知發送給用戶。每週發送一次通知
任何人都可以幫助我嗎?
我想通知用戶有關回答每週的問題。我需要將通知發送給用戶,即使我的應用程序沒有運行。通知將在一週內發送一次。 當用戶點擊通知我的應用程序將被打開。 我試過這個通過Timer和TimerTask()。當我的應用程序正在運行時,它會通知用戶。如何在應用程序未運行時將通知發送給用戶。每週發送一次通知
任何人都可以幫助我嗎?
以下代碼使用AlarmManager與BroadcastReceiver,它可以幫助您實現您的需求。
在你的活動:
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() - 表示該報警將觸發在當前時間,你可以通過每天毫秒的恆定時間。
然後創建一個接收器類這樣的事情,
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());
}
}
你也需要註冊您的廣播接收器類的清單文件,如下所示。 在AndroidManifest.xml文件內標籤,
<receiver android:name="com.example.receivers.Receiver"></receiver>
這裏的「com.example.receivers.Receiver」是我的包,我的接收器名稱。
嘗試使用AlarmManager! –
你有沒有將通知API作爲Urban Air Ship? – Pull
如何將AlarmManager與通知類 – Jolly