2013-04-15 107 views
1

我有一個活動(Activity_A)它有一個handlerreceiving messages從外部library。問題是Activity_A啓動活動Activity_B。當Activity_B啓動,Activity_Areceives a message上,我要「送」給Activity_Bhandler從一個活動發送消息到另一個

如何做到這一點?

我無法從Activity_A移動handlerActivity_B一些接收必須由Activity_A.

進行管理,我想盡量避免使用global/static variablesmessages的。 是否有可能以某種方式在Activity_A保存到Activity_B參考,當我創建intent?如何發送messageActivity_AActivity_B

一個重要這裏的一點是,是的,我想從一個活動傳遞一個對象到另一個,而不是在那一刻,我創建新的活動(傳遞對象束)。每當我收到來自外部庫的消息時,我都想異步執行此操作。

+0

你應該考慮完全不同的方法。當你開始活動B時,你的活動A可能完全被殺死。你可能會考慮一個處理/監聽特定意圖(與消息幾乎相同)的廣播接收器,而不是接收某些事件的處理程序? – WarrenFaith

回答

7

Activity_A

String msg = "message"; 
Intent i = new Intent(Activity_A.this, Activity_B.class); 
i.putExtra("keyMessage", msg); 
startActivity(i); 

Activity_B

Bundle extras = getIntent().getExtras(); 
String msg = extras.getString("keyMessage"); 

希望它的幫助。

更新:
我描述了兩個活動的交互過程。但是如果消息從庫中到達,那麼當運行Activity_B時 - 此方法不相關。
嘗試移動處理器的一些Service,這將工作時,您將需要。並從Activity_AActivity_B您可以定期查詢服務「來了一個新的消息?」使用Timer

+0

我更新了我的答案,請檢查它。 – jimpanzer

0

應用程序不能工作方式。如果您想要進行某項工作,那麼它必須對用戶可見。 您可以考慮使用後臺作業(即傳感器處理)或製作活動B片段 - 然後活動A仍然處於前景,而片段對用戶可見。

相關問題