手机重启后如何重启闹钟?

时间:2015-10-06 11:55:45

标签: android broadcastreceiver alarmmanager android-alarms repeatingalarm

在我的项目中,我使用AlarmManager每天开始一次Service。它工作正常。但是当手机重启重启时它会停止工作。 我在网上搜索过,他们建议开始BroadcastReceiver收听RECEIVE_BOOT_COMPLETED操作并重新启动Alarm。 我不知道该怎么做。 请建议我一个简单的方法来重置警报。我在这里发布了我的代码。

启动闹钟的我的代码

Intent start_alarm=new Intent(MainPage.this,MailService.class);
    PendingIntent pi=PendingIntent.getService(MainPage.this, 100, start_alarm, 0);
    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);

    Calendar calendar = Calendar.getInstance();

    calendar.add(Calendar.DATE,1);
    calendar.set(Calendar.HOUR_OF_DAY, 12);
    calendar.set(Calendar.MINUTE, 30);
    calendar.set(Calendar.SECOND, 0);
    calendar.set(Calendar.AM_PM, Calendar.AM);

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),1000*60*60*24,pi);

我的警报服务

@Override
public void onStart(Intent intent,int startId){
    super.onStart(intent,startId);

       //* My Code for sending Mail *//

   }

明确的服务注册

<service android:name=".MailService"/>

1 个答案:

答案 0 :(得分:3)

只需创建一个广播接收器并使用intent action_reboot在清单上注册,然后在onReceive方法中启动警报

这是如何注册接收器

       <receiver android:name="com.packagename.RebootReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

这是接收器

public class RebootReceiver extends BroadcastReceiver 
 {
public void onReceive(Context arg0, Intent arg1) 
{

    //start your alarm
   }
 }