2016-05-05 14 views
2

次トーストがヒットしているアラーム用のコードですBroadCast Receiver放送受信機と、保留中の意図:表示

Intent intentWithData = new Intent(context, TokenActivity.class); 
intentWithData.putExtra(Constants.ID,id); 
intentWithData.putExtra(Constants.POSITION, finalI); 

PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 007, intentWithData, 0); 
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5000, pendingIntent); 

Broadcast receiverのコードはマニフェストがある

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

public class TokenBroadcastReceiver extends BaseBroadCastReceiver { 

String Id; 
int position; 
@Override 
public void onReceive(Context context, Intent intent) { 
    Toast.makeText(context, "Create a toast", Toast.LENGTH_SHORT).show(); 
} 
} 

です:

<receiver android:name=".broadcastReceiver.TokenBroadcastReceiver"/> 

トーストが表示されません。このコードでどこが間違っていますか?

答えて

3

あなたは2つのものを混ぜています。 あなたの受信機が意図取得したい場合:

Intent intentWithData = new Intent(context, TokenActivity.class); 
intentWithData.putExtra(Constants.ID,id); 
intentWithData.putExtra(Constants.POSITION, finalI); 

PendingIntent pendingIntent = PendingIntent.getActivity(context, 7, intentWithData, 0); 
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5000, pendingIntent); 

プラス、あなたの受信機があなたのAndroidManifest.xml

に登録されていることを確認してください:あなたは、あなたの活動が意図を取得したい場合

Intent intentWithData = new Intent(context, TokenBroadcastReceiver.class); 
intentWithData.putExtra(Constants.ID,id); 
intentWithData.putExtra(Constants.POSITION, finalI); 

PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 7, intentWithData, 0); 
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5000, pendingIntent); 

+0

であなたの放送を登録するには、両方を行うにはどのような方法があることを忘れないでください?私の問題は、 'NotificationBuilder'に 'PendingIntent'だけをリスナーとして渡すことができるということです。そこではTaskStackBuilderをビルドしてアクティビティを作成する必要がありますが、同時にブロードキャストでサーバにリクエストを送信したいのですが、それ? – murt

+0

あなたの活動の中で放送受信機を起動する – MarkySmarky

1

コードごとにアクティビティを開く予定が設定されています

Intent intentWithData = new Intent(context, TokenActivity.class); 

を受信し、放送受信機にトーストを表示する。コードを修正してください。

Intent intentWithData = new Intent(this, TokenBroadcastReceiver.class); 
    intentWithData.putExtra("id",5); 
    intentWithData.putExtra("position", 4); 

    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 007, intentWithData, 0); 
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5000, pendingIntent); 

マニフェスト

<receiver android:name=".broadcastReceiver.TokenBroadcastReceiver"/> 
関連する問題