2014-01-29 55 views
0

我需要不同的應用程序。第一個應用程序有後臺服務第二個應用程序具有textview活動。 問題:如何使用第一個應用程序的服務檢測第二個應用程序的啓動?以及如何從服務中更改textview的文本?Android:如何更改另一個應用程序的textview

謝謝。

+0

應用程序通過windowtokens束縛,這些不能從其他應用程序使用,解決方法是在後臺服務拋出一個意圖,並抓住它通過一個BroadcastReceiver第二個應用程序,通過文本,你想改變通過捆綁的意圖 – Tobrun

回答

0

使用broadcastreceiver來更新你的另一個應用程序。
如果您使用服務,那麼它不會更新您的其他應用程序的GUI。廣播接收器是您想要的最佳做法。

1

您無法在其他應用程序上檢測到啓動,也無法直接更改其他應用程序的TextView。

但是你可以通過合作來實現這一點。第二個應用程序可以通知服務啓動,服務可以要求第一個活動更改其TextView。

這可以通過意圖來實現。第一個應用程序中的Activity可以在服務啓動時啓動,並且服務可以發送廣播或直接發送意圖給活動以請求它修改其TextView。

如果您想僅在運行時通知活動,並且不想像前面的示例那樣將其喚醒,那麼我建議您閱讀this link關於綁定服務的內容。它爲您提供了一個關於如何綁定到服務的完整示例,並且還描述瞭如何將請求發回活動。

請注意,此示例未顯示服務如何響應客戶端 。如果你想讓服務響應,那麼你還需要在客戶端創建一個Messenger。然後,當客戶端收到onServiceConnected()回調 時,它會向send() 方法的replyTo參數中的 包含客戶端的Messenger的服務發送消息。

相關問題