2012-04-10 17 views
1

Androidで正しいタイミングで通知を受け取ろうとしています。私は、彼らがAppの立ち上げから将来2分で消えて欲しい。私はここでそれを働かせることができれば、私はそれが本当に必要なところで簡単に働くことができます。ログは、必要なコード行が実行中であることを示していますが、通知は一度も起動しません。私はこれをデバッグしようとしていて、どこにいなくても8時間以上をかけています。どんな助けも素晴らしいだろう。ここでアラームマネージャーを使用したAndroidの通知が機能しない

は、私が作成したリマインダーコードです:

final PendingIntent pi = PendingIntent.getBroadcast(this.mContext, 
      0, 
      i, 
      PendingIntent.FLAG_ONE_SHOT); 

    TimeZone timeZone= TimeZone.getDefault(); 
    Calendar time= Calendar.getInstance(timeZone); 
    time.add(Calendar.MINUTE, 2); 

    this.mAlarmManager.set(AlarmManager.RTC_WAKEUP, 
      time.getTimeInMillis(), 
      pi); 

    Log.d ("setReminder",time.getTime().toLocaleString()); 

今すぐ下記の2分後にログに応じて実行していることはありません私のOnAlarmRecieveコードです。クラスが拡張されますBroadcastReceiver

@Override 
public void onReceive(final Context context, 
     final Intent intent) { 
    Log.d(TAG, "Recieved wake up cal from Alarm Manger"); 


    final String tableName = intent.getStringExtra(IntentExtraStringStorage.TABLE_NAME); 
    final long rowID = intent.getLongExtra(IntentExtraStringStorage.ROW_ID, 
      -1); 
    final String titleString = intent.getStringExtra(IntentExtraStringStorage.NOTIFICATION_TITLE); 
    final String notificationString=intent.getStringExtra(IntentExtraStringStorage.NOTIFICATION_NOTE); 

    WakeUpReminderIntentService.acuireStaticLock(context); 

    /*if (tableName== Task.TABLE_NAME) { 
     launchTaskView(context, rowID); 
    } 
    else { 
     Log.e (TAG, "Did not Launch"); 
     Toast.makeText(context, "Did not work right", Toast.LENGTH_SHORT).show(); 
    }*/ 
    Intent i = new Intent (context, ReminderService.class); 
    i.putExtra("taskID", rowID); 
    i.putExtras(intent.getExtras()); 
    Log.d(TAG, "Launched task"); 
    //TODO Added code to build the screen correctly 
    //FIXIT this need to be finished. 
    context.startService(i); 
}]= 
+0

あなたの問題かどうかは分かりませんが、私も同様の問題があり、onReceive()が呼び出されている間、デバイスはonReceive()が返されると直ちにスリープ状態に戻り、返されたonReceive()が実行されなかった後に実行されるはずです。私の解決策は、デバイスを完全に起動させるためにonReceive()内からPowerManager.userActivity()を呼び出すことでした。 –

+0

参考までに、http://stackoverflow.com/questions/9650974/how-to-programatically-dismiss-the-screensaver-lock-screen-on-android-nook-simpやhttps:// githubをご覧ください。 com/jfriesne/Electric-Sign/blob/master/src/com/sugoi/electricsign/ElectricSignActivity.java –

+0

問題onReceive()がまったく実行されていないようです。マニフェストに何かが追加されていることを確認する必要がありますか? – Timeless

答えて

1

私の問題が見つかりました。私は受信者としてmainfestのOnAlarmRecieverに入れなかったことが分かります。また、サービスに別のものを入れる必要もありました。

このために開発することに新しいものはあまり多くありません。

関連する問題