2016-05-12 1 views
-1

コードで何が間違っていますか? 私はちょうどテストする時間を変更しました。 結果を詳細に記入してください。決められた時間に自分の活動を始めたいと思います。たとえば3時

AlarmManager am = (AlarmManager) getBaseContext().getSystemService(Context.ALARM_SEDate futureDate = new Date(new Date().getTime() + 86400000); 
    futureDate.setHours(7); 
    futureDate.setMinutes(45); 
    futureDate.setSeconds(0); 

    Intent intent = new Intent(getBaseContext(), MyBroadcastReceiver.class); 

    PendingIntent sender = PendingIntent.getBroadcast(getBaseContext(), 0,intent, 
      PendingIntent.FLAG_UPDATE_CURRENT); 

これは、私は、特にあなたが達成することを目指して何のために知恵をたくさん持っている私のブロードキャストレシーバ

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

public class MyBroadcastReceiver extends BroadcastReceiver { 
//MediaPlayer mp; 
@Override 
public void onReceive(Context context, Intent intent) { 
    //mp=MediaPlayer.create(context, R.raw.alrm ); 
    //mp.start(); 
    //Toast.makeText(context, "Alarm....", Toast.LENGTH_LONG).show(); 
    Intent scheduledIntent = new Intent(context, HorrorRes.class); 
    scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(scheduledIntent); 

} 
} 
+0

ここで、アラームを設定していますか?つまり、 'am.set()'やそれに類するメソッドはどこで呼びますか? –

+0

なぜ新しいDate()。getTime()+ 86400000を実行しているのですか?現在の時刻を取得し、その期間を追加します。その後、カレンダー時刻paramsを設定します。それを設定する – JoxTraex

答えて

1

です。私は最近、NFC(タップアンドペイ)技術によってのみ無効にすることができる目覚まし時計アプリを公開しました。ここで

は、あなたが今後行う必要がありますいくつかのことです。

  • 使用getSystemService(Context.ALARM_SERVICE)。

  • カレンダーは特に重要です。 Calendar.add()または.set()を使用すると、カレンダークラスは内部変数の多くを適切に変更します.Calendar.getTime()は、Calendarのすべての内部フィールドを再計算し、Dateオブジェクトを返します。

    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(System.currentTimeMillis()); 
    calendar.add(Calendar.SECOND, 4); 
    Date date = calendar.getTime(); 
    Log.d("WakefulReceiver", date.toString()); 
    mAlarmManager.setExact(AlarmManager.RTC_WAKEUP, date.getTime(), mIntent); 
    
  • あなたの意図はうまくありません。

  • あなたのBroadcastReceiverをWakefulBroadcastReceiverに移行すると、このクラスはあなたのwakelockを処理します。私たちは本当にAndroidのBroadcastReceiverに受信してほしいだけです()。受信するとIntentServiceを開始できます。

  • IntentServiceは、デザインで発生する複数のものを処理するクラスになります。 IntentServiceは、(A)Async Foreground Media Playerを実行するための別個のサービスを開始する必要があります。 (B)あなたの活動を始める。

私ははるかに詳細に取得することができます

here is my Github project code.

  • WakefulBroadcastReceiver = /app/WakefulReceiver.java
  • IntentService = /app/RingingService.java
  • のMediaPlayer(としてフォアグラウンド非同期サービス)= /app/AlarmService.java

メッセージもっと洞察のために私!

+0

私に完璧なコードを送れますか –

+0

mIntentとnAlarmManagerの意味 –

+0

コードに関する多くの質問があります。私はあなたに連絡する方法をStackOverflow –

関連する問題