1

我打電話TimePickerDialog並根據用戶設定的時間,基於時間的用戶將獲得狀態欄每日本地通知

我已經寫下面的代碼做日用品的通知,

首先我打電話對話框,通過下面的代碼

  @Override 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case TIME_DIALOG_ID: 
     // set time picker as current time 
     return new TimePickerDialog(this, timePickerListener, hour, minute, 
       true); 

    } 
    return null; 
} 

監聽器方法是

 private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() { 

    @Override 
    public void onTimeSet(TimePicker view, int hourOfDay, int minutes) { 
     System.out.println("TimePicker: OnTimeSetLister: hour is "+hourOfDay+": mins"+minutes); 
     DailyNotification.registerAlarm(SubscribeMsgTime.this, hourOfDay, minutes); 
    } 

}; 

我已經在AndroidMenifiast.xml使用BroadCastRecevier文件

 <receiver 
     android:name="com.example.easynotification.DailyNotification" 
     android:process=":remote" > 
     <intent-filter> 
      <action android:name="com.example.easynotification.DAILY_NOTIFICATION" /> 
      <action android:name="android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE" /> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </receiver> 

而最後DailyNotification(廣播接收器)類低於

public class DailyNotification extends BroadcastReceiver { 



public static void registerAlarm(Context paramContext, int mHour, int mMin) { 
    Calendar calendar = Calendar.getInstance(); 
    if (calendar.get(Calendar.HOUR_OF_DAY) >= mHour) { 
     calendar.add(Calendar.DATE, 1); 
    } 
    calendar.set(Calendar.HOUR_OF_DAY, mHour); 
    calendar.set(Calendar.MINUTE, mMin); 
    calendar.set(Calendar.SECOND, 00); 


    PendingIntent localPendingIntent = PendingIntent.getBroadcast(
      paramContext, 22341, new Intent(
        "com.example.easynotification.DAILY_NOTIFICATION"), 
      PendingIntent.FLAG_UPDATE_CURRENT); 

    ((AlarmManager) paramContext.getSystemService("alarm")).setRepeating(1, 
      calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, 
      localPendingIntent); 
    System.out.println("Alarm Registered on Hour :- "+mHour+" : Min "+mMin); 
} 

private void showNotification(Context paramContext) { 
    try { 
     Notification localNotification = new Notification(R.drawable.ic_launcher, 
       paramContext.getString(R.string.app_name), 
       System.currentTimeMillis()); 
     localNotification.flags = (0x10 | localNotification.flags); 
     // PendingIntent that will start the EnterWeightActivity 

     Intent intent = new Intent(paramContext, MainActivity.class); 
     PendingIntent localPendingIntent = PendingIntent.getActivity(
       paramContext, 0, intent, 0); 

     localNotification.setLatestEventInfo(paramContext, "hi", "Amit", 
       localPendingIntent); 
     // Retrieve a NotificationManager to show the notification 
     ((NotificationManager) paramContext 
       .getSystemService("notification")).notify(0, 
       localNotification); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
@Override 
public void onReceive(Context paramContext, Intent paramIntent) { 
    if (paramIntent.getAction().equals(
      "com.example.easynotification.DAILY_NOTIFICATION")) 
     showNotification(paramContext); 
} 

}

但所有工作正常,對話框開放時間正在註冊,但通知或onReceive方法不打電話請任何人幫助我

回答