2012-05-09 10 views
1

私は悩んでしまったので、起動後にアラームを正しく設定することができません。ブロードキャストイベント、アラーム機能android

public void onReceive(Context context, Intent intent) { 

    if(Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())){ 
     if(fm.getAlarmBool()){ 
      time = fm.getAlarmTimeLong(); 
      reminder.startAlarm(time); 
     } 
    } 

これは私が起動後に実行したい方法です。私はアンドロイドマニフェストの権限を追加しましたが、動作させることができません。どうしましたか?

+0

plsリマインダからのいくつかの追加のコードを追加します、fm ansにはできません。 – Mahesh

+0

リマインダークラスはカレンダーを使って固定時間を設定します。たとえば、時刻を15:20に設定するとアラームイベントが設定され、fmは文字列をファイルに書き込み、ファイルから情報を取得します。この場合、イベントが発生する時刻を書き込みます。私の意見でこの問題を解決する必要はありません。 – Anticipating

答えて

0

あなたはので、ここであなたのサービスでマニフェスト

<receiver android:process=":remote" android:name="BootReceiver">  
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      <action android:name="android.intent.action.MAIN" /> 
     </intent-filter>  
    </receiver> 

public class BootReceiver extends BroadcastReceiver { 

Context context; 
@Override 
public void onReceive(Context context, Intent intent) {   
    context.startService(new Intent(context, NotificationService.class));  
} 

}

のようにそれを行うすべてのアラームを収集し、それらを再スケジュールする必要があります。 これは、永続的なストレージのために共有のprefまたはデータベースに保存することができます

+0

NotifactionServiceにどのクラスを書く必要がありますか?デバイスの起動時に実行したいクラスですか?私のIF声明に何か誤りがありますか?あなたのコードは、受信方法を鳴らし、私の電話機を再起動すると、アラームがすぐにアクティブになります。何らかの声明の中にこれを置く必要がありますか? – Anticipating

関連する問題