我有一個Android應用程序,我希望其他應用程序能夠通過意圖啓動。這將允許其他應用程序來與我互動,並提供初始投入等如何處理Android兒童活動沒有完成
主叫應用(稱之爲應用-A)進行以下操作:
Intent intent = new Intent("com.myapp.dosomething");
intent.putExtra("com.myapp.value1", "1.25");
intent.putExtra("com.myapp.value2", "bob");
startActivity(intent);
我的活動開始與意圖過濾器:
如果用戶經過我的應用程序的正常流動<intent-filter>
<action android:name="com.myapp.dosomething" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
,一切工作正常。用戶做的東西,然後當我知道用戶完成時,我打電話給我的活動finish()。一切都很華麗。
但是,如果通過我的應用程序做的東西的用戶部分的方式打回家按鈕,而不是結束,我們結束了一個重大問題的任務。如果他們嘗試從啓動器重新啓動App-A,我的應用程序將彈出。如果沒有強制殺死我的應用程序,用戶永遠無法回到App-A。更糟糕的是,我的應用程序專門設計爲在啓動之間不保留任何數據,當以這種方式重新啓動時,它也不會獲得最初傳入的任何額外數據,所以我的應用程序無法知道這個其他應用程序是還在等我。
我該如何設置,以便App-A不會坐在那裏等待我的應用程序?無論我的應用程序做什麼,它都應該能夠繼續運行。如果我的應用程序崩潰,或者沒有返回值,我不希望呼叫應用程序被永久掛起。
任何想法?
謝謝。
「用戶永遠無法返回到應用程序-A而沒有強制殺死我的應用程序」 - 爲什麼他們不能點擊BACK按鈕?它適用於類似的情況。 – Squonk 2012-04-03 23:38:39
那麼,作爲一個用戶,如果我啓動應用程序A,我不希望應用程序B出現,無論上次運行應用程序的時間。此外,由於各種原因,我們目前阻止後退按鈕(這將很快發生變化,這在項目開始時是一個糟糕的設計決定)。但無論如何,當您首先嚐試啓動應用程序a時,我們的應用程序不應該啓動。必須有一些活動處理兒童活動的機制! – user456771 2012-04-03 23:44:53
好的 - 我很欣賞你想要清理一些東西,但這就是Android默認運行的方式。在我的情況下,我的應用程序在用戶的家用PC上顯示視頻列表。如果他們選擇了一個視頻,我的應用會啓動第三方視頻播放器應用來流式傳輸視頻。如果用戶點擊HOME,然後再次啓動我的應用程序,它會繼續使用第三方應用程序播放視頻。換句話說,用戶使用我的應用程序的最後一個動作是開始播放視頻,爲什麼他們不應該這樣做呢?順便說一句,這是我誰upvoted你的問題,因爲我很好奇答案,即使我不認爲違約行爲是錯誤的。 – Squonk 2012-04-03 23:55:21