安卓tabhost和子Activity通訊方法

發現不少同窗在問這個問題java

1個tabhost對應的類假設是T,假設包含2個子tab,每一個是1個activity,假設叫a,b,對應的類假設是A和B多線程

那麼有這幾個問題ide

1.a如何調用b的方法,或者說發送消息給bspa

2.a如何通知tabhost.net

3.tabhost如何通知a和b線程

其實2,3解決了,1也就解決了blog

下面來講其中一種辦法(有的人給出了廣播的辦法,根據實際狀況選擇吧,這裏很少闡述)get


a如何通知tabhost,經過messageit

核心代碼是在t中寫個handler接收消息方法

[java] view plaincopy

  1. public Handler searchHandler = new Handler() {  

  2.         public void handleMessage(Message msg) {  

  3.             Bundle bundle = msg.getData();  

  4.             // 得到信息  

  5.             String searchString = bundle.getString("search");  

  6.             //XXXX邏輯    

  7. }  

  8. }  

而後在a中寫發送消息的代碼

[java] view plaincopy

  1. T t= (T) getParent();                  

  2. Message message = new Message();  

  3. //寫邏輯  

  4. t.searchHandler .sendMessage(message);  

 

tabhost如何通知a,

若是a是活動activity(這種狀況不少見,好比其餘tab在多線程執行東西,可是內容須要當前tab實時展示)

那麼Activity currentActivity = getCurrentActivity();
if (currentActivity instanceof A) {
           ((A) currentActivity).你的方法XXX;
       }
若是a不是活動activity,那麼在a的

@Override
protected void onResume() 

中天添加邏輯便可

相關文章
相關標籤/搜索