2013-04-22 71 views
0

我读了很多教程,但没有得到解决方案。我想使用AlarmManager进行同步。我希望当我选择“15分钟后”复选框时,在系统中设置当前时间的警报(如何在数据库中保存该特定时间,重要的是在数据库中节省时间?)和刷新列表每15分钟。我不知道如何绑定checkBoxes值和警报,以及如何使它成为可能。完全卡住。如何使用PendingIntent.activity()或PendingIntent.getBroadcast使用AlarmManager?

我的代码:

private final class syncOkClickListener implements DialogInterface.OnClickListener 
{ 
    public void onClick(DialogInterface dialog, int which) 
    { //Implement search method here 
     if(after15mint.isChecked()) 
     { 
      // Some code!!! or Alarm Manager !!! 
     // Toast.makeText(getApplicationContext(), "15 Minute checked", Toast.LENGTH_LONG).show(); 
     } 
     else 
     { 
      Toast.makeText(getApplicationContext(), "Default", Toast.LENGTH_LONG).show(); 
     } 
    } 

BroadcastReceiver的活动:

public class BroadCastReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 


} 
public void SetAlarm(Context context) 
{ 
    AlarmManager alarmManager = (AlarmManager)context.getSystemService(context.ALARM_SERVICE); 
    Intent syncIntent = new Intent(context, BroadCastReceiver.class); 
    syncIntent.putExtra("sync", 0); 
    PendingIntent pIntent = PendingIntent.getBroadcast(context, 0, syncIntent, 0); 
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000*20, pIntent); 
} 
public void CancelAlarm(Context context) 
{ 
    Intent intent = new Intent(context, BroadCastReceiver.class); 
    PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0); 
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    alarmManager.cancel(sender); 
} 

}

任何建议将是有益的。谢谢。

回答

0

你可以设置你的onClick代码的报警:

public void onClick(DialogInterface dialog, int which) 
{ //Implement search method here 
    if(after15mint.isChecked()) 
    { 
     // Create alarm intent. 
     Intent intent = new Intent(this, BroadCastReceiver.class); 
     PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0); 

     // Schedule alarm. 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(System.currentTimeMillis()); 
     calendar.add(Calendar.MINUTE, 15); 
     AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
     am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender); 
    } 
    else 
    { 
     Toast.makeText(getApplicationContext(), "Default", Toast.LENGTH_LONG).show(); 
    } 
} 

没有要求,为您节省了报警时间在自己的数据库中。

关于你阅读的许多教程没有帮助,一个好的开始是Android SDK的ApiDemos,你会在ApiDemos/App/Alarm/AlarmController中找到工作代码,实现一次性警报以及重复报警。

+0

嗨感谢您的回复,广播接收器代码是否正常? – Shweta 2013-04-24 05:07:49