1

我有一個包含按鈕的活動類。當我點擊按鈕時,它啓動一個服務,它將在一個單獨的線程中填充我的SQLite數據庫。服務完成後,我希望我的活動類中的textview能夠顯示數據庫中的新值。Android:如何判斷服務何時完成

我有一切正確設置,我的數據庫正在存儲正確的信息。我仍然困惑的唯一事情是如何告訴我的活動課程該服務已完成?

回答

1

當您的服務完成時,您可以發送廣播。

在你活動的onResume

IntentFilter intentFilter = ; //Look up how to make an intent filter with an action as specified in the below service code 
receiver =new BroadcastReceiver(); 
this.registerReceiver(receiver, intentFilter); 

在你活動的onPause

this.unregisterReceiver(receiver); 

在您服務。

Intent broadcastIntent = new Intent(); 
broadcastIntent.setAction("com.blablablaablla.ACTION_REFRESH"); 
this.sendBroadcast(broadcastIntent); 
+0

如何將廣播從服務發送到活動? – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2011-04-19 20:30:27

+0

更新主評論 – 2011-04-20 13:49:14

0

創建你自己的行動命名爲「mike.intent.DB_POPULATE_DONE」或類似的意圖......它只是一個字符串,您可以在onNewIntent檢查(),如果你選擇。

通過調用Context.startActivity()從Service發送一個Intent。

要接收意圖,請執行Activity.onNewIntent()

+0

我不認爲我想再次調用startActivity()。我只想讓我的控件使用數據庫中的新值進行刷新。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2011-04-19 21:27:52

相關問題