使用android alarmmanager

使用android alarmmanager,android,Android,我有一个提醒类应用程序,用户可以在其中设置提醒 我发现的大多数教程和示例都是关于alarm manager的,在其中,在特定时间后或预定义时间设置报警。但如何将其设置为用户输入的数据和时间。此外,用户将设置多个警报 所有这些都存储在数据库中,然后填充到lsitview中 这是一个用户将在其中设置日期和时间的片段:文本dte和tme显示用户选择的日期和时间,然后当用户单击“保存”按钮时,我想在用户选择的时间设置报警 Calendar calender = Calendar.getInstance(

我有一个提醒类应用程序,用户可以在其中设置提醒

我发现的大多数教程和示例都是关于alarm manager的,在其中,在特定时间后或预定义时间设置报警。但如何将其设置为用户输入的数据和时间。此外,用户将设置多个警报

所有这些都存储在数据库中,然后填充到lsitview中

这是一个用户将在其中设置日期和时间的片段:文本dte和tme显示用户选择的日期和时间,然后当用户单击“保存”按钮时,我想在用户选择的时间设置报警

Calendar calender = Calendar.getInstance();
TextView dte,tme, doit;
ImageButton cal;
EditText enteredTask;
Button save;
String taskentered, dateentered, timeentered;
tasks_Database_Operations tasksDatabaseOperations;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.add_task_fragment, container, false);
    dte = (TextView) view.findViewById(R.id.datetv);
    tme = (TextView) view.findViewById(R.id.timetv);
    Log.d("LifeCycle HirakDebug", "aTF View Created");
    return view;
}

@Override
public void onResume() {
    super.onResume();
    Log.d("LifeCycle HirakDebug", "aTF Resume");

    enteredTask = (EditText) getActivity().findViewById(R.id.user_entered_task);
    doit = (TextView) getActivity().findViewById(R.id.title);
    cal = (ImageButton) getActivity().findViewById(R.id.select_date);
    save = (Button) getActivity().findViewById(R.id.save_tsk);
    save.setOnClickListener(this);
    cal.setOnClickListener(this);
}

@Override
public void onClick(View view) {
    if (view == cal) {
        FragmentManager fm = getFragmentManager();
        date_time_picker dTP = new date_time_picker();
        dTP.setTargetFragment(this, 1);
        dTP.setStyle(DialogFragment.STYLE_NO_TITLE, R.style.myCustomDialog);
        dTP.show(fm, "dTP");
        Log.d("HirakDebug", "add_task_frag setDate called");
    } else if (view == save) {
        saveData();
        Log.d("HirakDebug", "add_task_frag saveData called");
    }
}

private void saveData() {
    String iidd = null;
    taskentered = enteredTask.getText().toString();
    dateentered = dte.getText().toString();
    timeentered = tme.getText().toString();
    tasksDatabaseOperations = new tasks_Database_Operations(getActivity());
    long id = tasksDatabaseOperations.insertData(iidd, taskentered, dateentered, timeentered);
    if (id < 0) {
        Log.e("HirakDebug", "add_task_frag failed insertData operation");
    } else {
        Log.d("HirakDebug", "Data sent to be inserted");
    }
    tasksDatabaseOperations.sqLiteDatabase.close();
    goBackToTaskListFragment();
}
private void goBackToTaskListFragment() {
    tasksListFrag tLF = new tasksListFrag();
    add_task_frag aTF = new add_task_frag();
    FragmentManager fm = getFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    ft.setCustomAnimations(R.anim.slide_up, R.anim.slide_down);
    ft.remove(this);
    ft.replace(R.id.dynamic_content, tLF, "tLF");
    ft.commit();
    Log.d("HirakDebug", "add_task_frag went back to taskListFrag");
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK && requestCode == 1){
        String date = data.getStringExtra("date");
        String time = data.getStringExtra("time");
        dte.setText(date);
        tme.setText(time);
    }
}

也许是你需要使用的那个。 请点击下面的链接

设置重复警报

代码示例形成上述链接:

唤醒设备,在上午8:30准时触发警报,此后每隔20分钟:

私人AlarmManager alarmMgr; 私人悬而未决的意图; ... alarmMgr=AlarmManagercontext.getSystemServiceContext.ALARM\u服务; 意图=新的意图上下文,AlarmReceiver.class; alarmIntent=PendingEvent.getBroadcastcontext,0,intent,0; //将警报设置为早上8:30开始。 Calendar Calendar=Calendar.getInstance; calendar.SetTimeInMillissSystem.currentTimeMillis; calendar.setCalendar.HOUR_OF u DAY,8; calendar.setCalendar.MINUTE,30; //setRepeating允许您在这种情况下指定精确的自定义间隔, //20分钟。 alarmMgr.setRepeatingAlarmManager.RTC_唤醒,calendar.getTimeInMillis, 1000*60*20,报警意图;