發現不少同窗在問這個問題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
public Handler searchHandler = new Handler() {
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
// 得到信息
String searchString = bundle.getString("search");
//XXXX邏輯
}
}
而後在a中寫發送消息的代碼
[java] view plaincopy
T t= (T) getParent();
Message message = new Message();
//寫邏輯
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()
中天添加邏輯便可