簡體   English   中英

放置並獲取廣播接收器

[英]put and get Broadcast Receiver

如何獲得我放入廣播接收器的值? 請幫我

在我的活動中

public static void startActivity(Context context) {
   //what can i put here?
}

意向服務

intent.putExtra("DriversID", 1351351);
sendBroadcast(intent);

我的廣播接收器

public class GcmBroadcastReceiver extends WakefulBroadcastReceiver {

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

     Bundle bundle = intent.getExtras();

    String DriversID = null;
    if (bundle != null) {
        DriversID = bundle.getString("DriversID");
        Toast.makeText(context, "DriversID", Toast.LENGTH_LONG).show();
    }

    Intent i = new Intent(context, DashboardActivity.class);
    i.putExtra("getDriversID", DriversID);
    context.startActivity(i);


    ComponentName comp = new ComponentName(context.getPackageName(),
            GcmIntentService.class.getName());
    startWakefulService(context, (intent.setComponent(comp)));
    setResultCode(Activity.RESULT_OK);
     }
}

這是確切的場景,當 GCM 通知我時,我將從 inten 獲取消息並將其發布到廣播,然后活動將獲取消息的值,怎么樣?

您可以在您的活動中創建一個 BroadcastReciever:

    private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {

        // Extract data included in the Intent
        // String message = intent.getStringExtra("message");
        // do other stuff here
    }
};

然后你應該在你的活動中注冊(例如在 onResume 中):

this.registerReceiver(mMessageReceiver, new IntentFilter("unique_name"));

並記住取消注冊(在 onPause 中,選擇適合您需要的任何內容):

protected void onPause() {
        super.onPause();
        this.unregisterReceiver(mMessageReceiver);
}

要發送數據,您可以使用:

Intent intent = new Intent("unique_name");

    // put whatever data you want to send, if any
    // intent.putExtra("message", "some data");

    // send broadcast
    context.sendBroadcast(intent);
}

這會做。 為意圖設置一個動作並發送廣播。

intent.setAction(action);

並檢查接收器中的動作以找到意圖

 public void onReceive(Context context, Intent intent) {
    if(intent.getAction().equals(action))
    String DriversID = intent.getStringExtra("DriversID");
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM