Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Edittext中输入DateTime后为我的任务创建一次通知剩余部分_Java_Android_Notifications - Fatal编程技术网

Java 如何在Edittext中输入DateTime后为我的任务创建一次通知剩余部分

Java 如何在Edittext中输入DateTime后为我的任务创建一次通知剩余部分,java,android,notifications,Java,Android,Notifications,大家早上好..我创建了Android应用程序来准备日程任务..对于我的任务,我想为我的任务创建通知剩余..我没有任何代码来创建…我搜索了这个主题,但我没有得到任何正确的解决方案..请帮助我任何人…提前感谢 这里是我的编码..用于在编辑文本框中插入日期时间: MainActivity.java: EditText edtdate; private ImageButton ib; private Calendar cal; private int day ,month ,yea

大家早上好..我创建了Android应用程序来准备日程任务..对于我的任务,我想为我的任务创建通知剩余..我没有任何代码来创建…我搜索了这个主题,但我没有得到任何正确的解决方案..请帮助我任何人…提前感谢

这里是我的编码..用于在编辑文本框中插入日期时间:

MainActivity.java:

 EditText edtdate;
  private ImageButton ib;
    private Calendar cal;
    private int day ,month ,year;

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_inbox);
edtdate = (EditText) findViewById(R.id.edtdate);

cal = Calendar.getInstance();
        day = cal.get(Calendar.DAY_OF_MONTH);
        month = cal.get(Calendar.MONTH);
        year = cal.get(Calendar.YEAR);
     cal.add(Calendar.HOUR, heure);                         
        Intent intent1 = new Intent(this, MyBroadcastReceiver.class);                       
        PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent1,   
      PendingIntent.FLAG_UPDATE_CURRENT);                       
        AlarmManager am = (AlarmManager) this .getSystemService(Context.ALARM_SERVICE);                         
        am.setRepeating(AlarmManager.RTC_WAKEUP, 
                cal.getTimeInMillis(), 
                heure*3600*1000,  sender);

      custom = new CustomDateTimePicker(this, new     
      CustomDateTimePicker.ICustomDateTimeListener() {
          @Override
          public void onSet(Dialog dialog, Calendar calendarSelected,
                  Date dateSelected, int year, String monthFullName,
                  String monthShortName, int monthNumber, int date,
                  String weekDayFullName, String weekDayShortName,
                  int hour24, int hour12, int min, int sec,
                  String AM_PM)
          {
              ((EditText) findViewById(R.id.edtdate))
                      .setText(calendarSelected
                                      .get(Calendar.DAY_OF_MONTH)
                              + "/" + (monthNumber+1) + "/" + year
                              + ", " + hour12 + ":" + min
                              + " " + AM_PM);
          }
          @Override
          public void onCancel() {
          }
      });
          }
      });
 custom.set24HourFormat(false);

        custom.setDate(Calendar.getInstance());

        findViewById(R.id.imageButton1).setOnClickListener(
                new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        custom.showDialog();
                    }
                });
}
  CustomDateTimePicker custom;

要创建通知,请使用broadcastReceiver:

public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

    Intent resultIntent = new Intent(context,
            MainActivity.class);

    resultIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

    // Because clicking the notification opens a new ("special") activity,
    // there's no need to create an artificial back stack.
    PendingIntent resultPendingIntent = PendingIntent.getActivity(context,
            0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    Notification.Builder mBuilder = new Notification.Builder(context)
    .setSmallIcon(R.drawable.courier_blanc)
    .setContentTitle("Title")
    .setContentText("Message");

    mBuilder.setAutoCancel(true);   
    mBuilder.setPriority(Notification.PRIORITY_MAX);
    mBuilder.setContentIntent(resultPendingIntent);

    // Sets an ID for the notification
    int mNotificationId = 001;
    // Gets an instance of the NotificationManager service
    NotificationManager mNotifyMgr = (NotificationManager) context
            .getSystemService(Application.NOTIFICATION_SERVICE);


    // Builds the notification and issues it.
    mNotifyMgr.notify(mNotificationId, mBuilder.build());

} }
说它是否有用。如果你有一些问题,或者不是你真正想要的,就说:)

编辑:

        int heure = 1;
        int minute = 30;
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.HOUR, heure); 
        cal.add(Calendar.MINUTE, minute);

        Intent intent = new Intent(this, MyBroadcastReceiver.class);

        PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent,
                PendingIntent.FLAG_UPDATE_CURRENT);

        AlarmManager am = (AlarmManager) this
                .getSystemService(Context.ALARM_SERVICE);

        am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), minute*60*1000+heure*3600*1000,  sender);

@ODIIL您可以使用alarm manager在特定日期时间安排通知

谢谢您的回复..通知类可以…在我的应用程序中,我使用edittext为我的任务添加日期时间..单击“添加”按钮..希望每天向用户邮件id发送剩余通知,直到任务完成..希望您理解我的建议qs..所以使用报警管理器执行以下操作:
Calendar cal=Calendar.getInstance();cal.add(Calendar.HOUR,heure);Intent Intent=新Intent(这个,MyBroadcastReceiver.class);PendingEvent sender=PendingEvent.getBroadcast(this,0,intent,PendingEvent.FLAG_UPDATE_CURRENT);AlarmManager am=(AlarmManager)this.getSystemService(Context.ALARM\u服务);am.setRepeating(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),heure*3600*1000,发送方)对不起,我没有把代码放对,但是复制粘贴它并说如果它是你想要的(不确定是否理解…)你必须停止你的通知:
Intent notificationIntent=newintent(这个,activitystoprecever.class);notificationIntent.setFlags(Notification.FLAG\u AUTO\u CANCEL);PendingEvent intent=PendingEvent.getActivity(getApplicationContext(),0,notificationIntent,0)
在停止接收器的活动中,您必须调用cancel[链接]并在此处查看是否停止报警:我已将所有代码都放在此处。。。(我编辑我的答案)你把这个放在你的清单上了吗`