1
我有一個Activity
和IntentService
重新啓動從IntentService活動,如果活動運行
的Activity
調用IntentService
當IntentService
完成我要重新啓動的活動。但只有當它在屏幕上。當它再次打開時(只有onResume()
)被調用,並且沒有創建新的實例時,它也應該重新啓動。
那麼練習這個的最好方法是什麼?
我有一個Activity
和IntentService
重新啓動從IntentService活動,如果活動運行
的Activity
調用IntentService
當IntentService
完成我要重新啓動的活動。但只有當它在屏幕上。當它再次打開時(只有onResume()
)被調用,並且沒有創建新的實例時,它也應該重新啓動。
那麼練習這個的最好方法是什麼?
如果活動仍在屏幕上,則不必重新啓動它。您可以註冊一個BroadcastReceiver
,用於處理在您的IntentService
完成工作時發送的廣播。
如果活動已完成或未在屏幕上,則使用startActivity
並創建一個新實例是安全的(並且不是一種不好的做法)。它會使你的歷史一致。
如果您確實希望只有一個活動實例,則可以將以下行添加到清單中的活動標記中。
android:launchMode="singleTask"
或
android:launchMode="singleInstance"
This post如果您想了解詳細解釋了區別。
問題是,我必須重新啓動活動,因爲佈局是由代碼生成的,它必須從數據庫加載新數據,因爲我無法找到我想要的顯式視圖。當用戶退出應用程序時,intentservice仍在運行並正在進行工作。並且用戶在intentservice完成時收到通知。所以我不想讓用戶在他現在處於另一個應用程序時啓動我的應用程序,所以這是一種不好的做法,我認爲。 – maysi