所以,我有一個處理的活動。有多個處理程序麻煩的Android
private final Runnable m_Runnable = new Runnable()
{
public void run()
{
if(LiveAPI.getStatus() == 1){
matches = LiveAPI.getMatches();
listAdapter.notifyDataSetChanged();
}
LivePage.this.mHandler.postDelayed(m_Runnable, 5000);
}
};
這裏我得到一些數據並用它更新我的列表。有用。
當我點擊我的列表中的項目,這functon被稱爲
private void showLiveMatch(int position) {
Intent i = new Intent(this, LiveMatch.class);
i.putExtra("match", matches.get(position));
startActivity(i);
}
我的新的活動出現,至極還包含另一個處理程序:
private final Runnable m_Runnable = new Runnable()
{
public void run()
{
if(LiveAPI.getStatus() == 1){
match = LiveAPI.getMatch(match.getId());
displayCommentaries();
}
LiveMatch.this.mHandler.postDelayed(m_Runnable, 5000);
}
};
有時候這工作,因爲我想要的。 但在某些情況下,它似乎是在第二個活動仍稱從第一處理LiveAPI.getMatches()
而不是LiveAPI.getMatch(match.getId());
每個函數顯示控制檯文本,這就是我弄明白叫什麼功能。
有人能解釋我爲什麼?
實況活動實時顯示多個遊戲的體育賽事比分和數據需要定期刷新。 LiveMatch活動顯示關於單個匹配的實時信息。 LiveApi.getMatch(matchId)被調用並且信息被更新。問題是,在某些情況下LiveApi.getMatch()不叫我的信息沒有更新 – UnguruBulan
@UnguruBulan - 這聽起來像一個不同的問題,從您在您的文章中描述的內容。或者可能不是。正如我所說的,除非您停止循環,即使在您每5秒鐘啓動一次調用「LiveAPI.getMatch()」的循環之後,每隔5秒仍會對「LiveAPI.getMatches()」進行調用。這能解釋你所看到的嗎?不知道這兩個方法做了什麼,是否有可能調用'getMatches()'干擾對'getMatch()'的調用? –
感謝試圖幫助我,我用'mHandler.removeCallbacks(m_Runnable);'當我切換到第二個活動,和'this.mHandler.postDelayed(m_Runnable,5000);'當恢復的第一個。現在它正在工作。再次感謝 – UnguruBulan