2011-12-21 9 views
0

AlarmManagerを使用してメールを時間どおりに送信するようなアプリケーションを作成しています。このアプリでは、メールの意図は時間によって完璧に上昇します。電子メールの意図を高めるために1回設定すればうまくいくでしょう。私のアプリにBackgroundServiceを統合していますか?

イベントが発生する前にデバイスを再起動すると、その後、アプリが動作する必要があります。しかし、それは動作しません。

何が欠けていますか?デバイスを再起動した後、これを引き上げるために必要なものは何ですか?

答えて

1

あなたはマニフェストファイルにアクション<action android:name="android.intent.action.BOOT_COMPLETED" />BroadcastReceiverを使用する必要があります。それから、サービスを開始する必要があります。

+0

はい、そうです。私は 'BroadcastReceiver'によってこれをやっただけで、時間も確認しています。 – Praveenkumar

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(); 
     } 
    } 
}; 
関連する問題