2016-05-14 25 views
0

私は、ユーザーが自分のアプリケーション内のアイテムの日付を設定する方法を見つけようとしています。アプリ内にいなくても、通知バーに通知が表示されます。通知バーに日付で通知を追加する

助けがあれば助かります。ありがとう

+0

<receiver android:name=".AlarmReceiver"> <intent-filter> <action android:name="android.media.action.DISPLAY_NOTIFICATION" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> 

の下に追加 – Lampard

答えて

1

DatePickerを使用してユーザーから日付を取得できます。 アラームマネージャを使用してアラームを設定し、次にonReceiveメソッドが通知を作成します。

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 

     Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION"); 
     notificationIntent.addCategory("android.intent.category.DEFAULT"); 

     PendingIntent broadcast = PendingIntent.getBroadcast(this, 100, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); 

     Calendar cal = Calendar.getInstance(); 
     cal.add(Calendar.DATE, d); // Date for your notification 
     cal.add(Calendar.MONTH, m); // Date for your notification 
     cal.add(Calendar.YEAR, y); // Date for your notification 
     alarmManager.setExact(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), broadcast); 

AlarmReceiver.javaにマニフェストで を新しいJavaファイルを作成するには、メイソン・リチャードソン@リマインダーアプリケーションを作成しますかコードAlarmReceiver.java

import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.support.v4.app.NotificationCompat; 
import android.support.v4.app.TaskStackBuilder; 

public class AlarmReceiver extends BroadcastReceiver{ 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Intent notificationIntent = new Intent(context, NotificationActivity.class); 

     TaskStackBuilder stackBuilder = TaskStackBuilder.create(context); 
     stackBuilder.addParentStack(NotificationActivity.class); 
     stackBuilder.addNextIntent(notificationIntent); 

     PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 

     NotificationCompat.Builder builder = new NotificationCompat.Builder(context); 

     Notification notification = builder.setContentTitle("Demo App Notification") 
       .setContentText("New Notification From Demo App..") 
       .setTicker("New Message Alert!") 
       .setSmallIcon(R.mipmap.ic_launcher) 
       .setContentIntent(pendingIntent).build(); 

     NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationManager.notify(0, notification); 
    } 
} 
関連する問題