2016-04-15 13 views
-4

私は実際に助けが必要です、私はアンドロイドからアラームマネージャーと特定の時間にトーストを表示しようとしています。 manager.setでcal_nowそれは5秒後にオフに発射する - 私はいくつかの研究をしたと私はこのコードを作ったが、私はOKではないかわからない...私は私がcal_alarmを使用する場合は、すべてアンドロイドスタジオでアラームを設定するには?

public void start() { 
     AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
     Date dat = new Date(); 
     Calendar cal_alarm = Calendar.getInstance(); 
     Calendar cal_now = Calendar.getInstance(); 
     cal_now.setTime(dat); 
     cal_alarm.setTime(dat); 
     cal_alarm.set(Calendar.HOUR_OF_DAY,12); 
     cal_alarm.set(Calendar.MINUTE,13); 
     cal_alarm.set(Calendar.SECOND,0); 
     if(cal_alarm.before(cal_now)){ 
      cal_alarm.add(Calendar.DATE,1); 
     } 
     manager.set(AlarmManager.RTC_WAKEUP,cal_alarm.getTimeInMillis(),pendingIntent); 
    } 

を試してみました。この

<receiver android:name=".AlarmReceiver" /> 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.widget.Toast; 

public class AlarmReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     Toast.makeText(context, "ALARM", Toast.LENGTH_LONG).show(); 
    } 
} 

このBroadcastReceiver AlarmReceiver.javaを作成するには、あなたののAndroidManifest.xmlで結果

を取得するためにレシーバを追加する必要が

+0

Googleです。アンドロイドの開発者の完全なダウンロード可能な例があります。 –

+0

これを確認してください。http://stackoverflow.com/a/8801990/4414887とhttp://stackoverflow.com/a/12124955/4414887 – anAmaka

+1

[Alarm Managerの例]の重複している可能性があります(http://stackoverflow.com/questions/ 4459058/alarm-manager-example) –

答えて

2

を追加し、最後に、メソッドの開始を固定します

public void start() { 
    AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
    Date dat = new Date(); 
    Calendar cal_alarm = Calendar.getInstance(); 
    Calendar cal_now = Calendar.getInstance(); 
    cal_now.setTime(dat); 
    cal_alarm.setTime(dat); 
    cal_alarm.set(Calendar.HOUR_OF_DAY,14); 
    cal_alarm.set(Calendar.MINUTE,18); 
    cal_alarm.set(Calendar.SECOND,0); 
    if(cal_alarm.before(cal_now)){ 
     cal_alarm.add(Calendar.DATE,1); 
    } 

    Intent myIntent = new Intent(context, AlarmReceiver.class); 
    pendingIntent = PendingIntent.getBroadcast(context, 0, myIntent, 0); 

    manager.set(AlarmManager.RTC_WAKEUP,cal_alarm.getTimeInMillis(), pendingIntent); 
} 
+0

私はマニフェストで宣言していましたが、私もalarmreceiver.javaを持っていました。しかし、まだ何も。 –

+0

マニフェストでは、拡張子.javaを追加する必要はありません。 – Gorio

+0

アラームマネージャーの完全なプロジェクトをダウンロードしましたが、まだ動作しません –

関連する問題