我必須創建自定義守護進程UI線程,如果在後端有任何更新(爲了讓它更容易讓我們假設對話框應該每隔1分鐘顯示一次)就會顯示對話框。我有我的應用程序中的每個活動的父親的BaseActivity。對話應該顯示在我的任何活動中。此外,我有我的自定義SSAApplication類擴展應用程序。所以,我希望我的UI線程成爲SSAApplication類的靜態字段,並且此線程將在應用程序中啓動和停止。我想Handler應該用在我的案例中,但我不知道如何。問題是我無法理解如何從此線程顯示對話框。那麼,有沒有人可以幫助我解決問題?Android自定義守護進程UI線程
2
A
回答
1
從UI線程以外的任何位置都無法顯示對話框。這實際上是個好消息:如果可以的話,你將花費無窮無盡的時間來調試不可重現的問題!
您所要做的就是根據您的猜測,從後臺線程回報您的前端活動,並讓他們完成UI工作。
後臺線程開始工作之前,把它的回調接口:
public interface SomeListener {
public void onSomethingDone(Object result);
}
比方說,你要開始這個線程,並將它通知你回來時,它具有數據(而不是請求數據每次)。基本的(unabstracted,難看)的做法是這樣:
/* In your Activity */
private Handler mHandler = new Handler();
public void startBackgroundWork() {
new WorkingThread(new SomeListener() {
public void onSomethingDone(Object result) {
mHandler.post(new Runnable() {
public void run() { showMyDialog(result); }
}
}
}).start();
}
然後,當然
public class WorkingThread extends Thread {
private SomeListener mListener;
public WorkingThread(SomeListener listener) {
mListener = listener;
}
public void run() {
/* do some work */
mListener.onSomethingDone(result);
}
}
這樣,你的線程調用從活動的證明,保證對話的功能線。
但是,您可能會遇到其他類型的問題。這不是解決這個問題的100%正確方法。看到這篇博客文章的更多信息:
http://blogactivity.wordpress.com/2011/09/01/proper-use-of-asynctask/
相關問題
- 1. 用Rails 3自定義守護進程
- 2. 創建自定義Ubuntu守護進程
- 3. java守護進程線程
- 4. 守護線程
- 5. 定時器()作爲守護進程與非守護進程
- 6. Java中的守護進程和非守護線程優先級
- 7. java線程 - 守護線程?
- 8. 關於守護進程線程
- 9. Python線程和守護進程
- 10. 瞭解Python守護進程線程
- 11. 退出守護進程線程
- 12. 在java中的守護進程線程
- 13. 創建守護進程線程
- 14. HTTP ::守護進程和線程
- 15. 守護進程線程終止於jvm
- 16. Ruby守護進程決定
- 17. 如果非守護進程線程正在等待守護進程,
- 18. 守護進程線程是否也是守護進程線程啓動的線程?
- 19. 在守護進程線程中創建的進程的主線程是守護進程本身嗎?
- 20. 守護線程Java
- 21. Linux守護進程
- 22. iphone守護進程
- 23. Python守護進程
- 24. Python的多線程守護進程(模塊守護進程,併線程一起使用)
- 25. 守護進程未登錄到自定義日誌文件
- 26. 使用自定義配置運行扭曲的守護進程
- 27. 使用Monit監視自定義守護進程
- 28. Linux守護進程停止啓動 - 停止守護進程
- 29. Python多線程:如何讓守護進程線程運行
- 30. 的Android守護線程測試