2011-12-21 71 views
0

我正在做一个应用程序,例如使用AlarmManager来提高电子邮件意向。在这个应用程序,电子邮件意图提高时间完美。如果我们设置一次提高电子邮件意图,它会起作用。将BackgroundService集成到我的应用程序?

如果我们在达到事件时间之前重新启动设备。然后,该应用程序应该是工作。但是,它不起作用。

缺少什么?他们需要在重启设备后提出这个问题?

回答

1

你需要使用BroadcastReceiver与清单文件的行动<action android:name="android.intent.action.BOOT_COMPLETED" />。那么你需要从它开始服务。

+0

是的,你说得对。我刚刚通过'BroadcastReceiver'完成了这个工作,并且在那里检查时间。 – Praveenkumar 2012-02-08 05:01:32

2

我想你应该用SharedPreferences来保存你的状态。 看看下面的代码,并做一些关于SharedPreferences的搜索。其易于实现。

private TimePickerDialog.OnTimeSetListener mSettingsTimePickerListener = new TimePickerDialog.OnTimeSetListener() { 
    @Override 
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     sharedHour = hourOfDay; 
     sharedMinute = minute; 

     previousSharedHour = hourOfDay; 
     previousSharedMinute = minute; 

     try { 
      final Calendar c = Calendar.getInstance(); 
      c.add(Calendar.HOUR_OF_DAY, hourOfDay); 
      c.add(Calendar.MINUTE, minute); 
      objDate = c.getTime(); 

      SharedPreferences alarmSettings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE); 
      SharedPreferences.Editor prefEditor = alarmSettings.edit(); 

      prefEditor.remove(PREFS_NAME); 
      prefEditor.commit(); 

      alarmSettings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE); 
      prefEditor = alarmSettings.edit(); 

      System.out.println("In seting dialog : "+hourOfDay +" : "+minute); 
      prefEditor.putInt("sharedHour", hourOfDay); 
      prefEditor.putInt("sharedMinute", minute); 
      prefEditor.commit(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
}; 
相关问题