我有一個服務的隱式意圖,將信息發送到我的主要活動以及另一個類。我現在也想要這個意圖啓動我的主要活動。我查看了與此相關的無數帖子,並在清單中嘗試了很多不同的東西 - addCategory
,setAction(MAIN; the activity's name; you name it, I've tried it...)
,category.DEFAULT
,以及其他一些導致ActivityNotFoundExceptions(最常見)或行爲的其他情況,這些情況在其他情況下是不受歡迎的。啓動服務中隱含意圖的主要活動
以下是設置意圖的位置和清單的相關部分。意圖的接收者註冊在主要活動中。
final String NEW_DOSES = "changed to protect the innocent";
Intent bluetoothBroadcast = new Intent();
several putExtra lines here
bluetoothBroadcast.setAction(NEW_DOSES);
sendBroadcast(bluetoothBroadcast);
<activity
android:name=".AsthmaAppActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
是否有可能通過相對較小的變化來啓動我的主要活動?提前致謝。
這不是好的做法,開始的'Activity'從'Service'除非它也作爲用戶直接採取的行動。一個'Service'是一個背景組件,而一個'Activity'是一個UI組件 - 當一個用戶不期待它時,迫使一個UI出現對用戶體驗不利。 – Squonk
謝謝,是的,這是一個好點,我打算在我的問題中提到它。雖然我知道這樣做通常不是很好的做法,但我們仍然希望應用以這種方式「在用戶面前」。 – hBrent
你能描述一下「Intent」附加功能是什麼以及它們會多久改變一次?當'Activity'已經打開時,可能可以使用廣播'Intent'的組合,當'Activity'從'Service'強制啓動時可以使用'STICKY'Intent。 – Squonk