2014-08-28 56 views
-2

我有兩個不同的活動。如何使用廣播在兩個活動之間接收和發送數據

在第一個活動中,我點擊一個按鈕,然後發送廣播。

第二個活動可以接收廣播,並做下一個事件。

如何使用動態寄存器廣播來做到這一點?

+0

您從一個'Activity'使用'Intent'演員和調用'startActivity(...)'與'Intent'發送數據到另一個。 – Squonk 2014-08-28 07:56:59

回答

1

您不能同時運行多個活動,因此您的BroadcastReceiver必須在該類之外,如this教程。

一旦你的BroadcastReceiver被觸發,你可以啓動你的第二個活動,使用某些參數來知道你必須觸發第二個活動。

儘管如此,另一種可能的解決方案可能是直接從按鈕點擊開啓第二個活動,你不覺得嗎?

-1

您需要更改清單文件,你需要添加以下代碼

<receiver android:name="MyScheduleReceiver" > 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 
     <receiver android:name="MyStartServiceReceiver" > 
     </receiver> 

第二件事是發送活動,併到達活動

發送:

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      //do your stuff 
      Intent i=new Intent(getApplicationContext(), MainActivity.class); 
      startActivity(i); 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

接收:

public class MyReceiver extends Activity{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main1); 

    } 


} 
0

在兩個活動之間傳遞信息的正確方法是使用Intent。 閱讀本 - http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent

Intent intent = new Intent(this, SecondActivity.class); 
intent.putExtra(key, value); 
startActivity(intent); 

在SecondActivity你得到的信息是這樣 -

int x = getIntent().getExtras().getInt(key) 

不能使用廣播接收器的活動之間通過增值經銷商,因爲他們沒有在同一時間運行。

0

如果你想從一個活動向另一個活動廣播數據,只需使用意圖。在你的第二個活動的onDestroy方法創建意圖對象和廣播數據作爲意圖額外的然後,使用intent.getExtra()方法onReceive()方法你的broadcastReceiver類。

有關詳細信息: follow this tutorial

相關問題