2013-04-12 36 views
0

我想知道什麼時候應用程序是什麼時候設置 - >管理應用程序 - >強制關閉。 它是否調用onDestroy()。如果用戶強制關閉應用程序,我想重新啓動我的應用程序。這個怎麼做。我想知道是否可以在接收短信或使用broadcastReceivers呼叫時重新啓動它。重新啓動應用程序接收短信或致電

是的,我正在做同樣的事情。我檢查ic我的服務正在運行使用此代碼,但它始終顯示「服務正在運行」吐司 boolean isServiceRunning = AppSettings.getServiceRunning(context); (isServiceRunning) Toast.makeText(context,「service running」,Toast.LENGTH_LONG).show();如果(服務運行) Toast.makeText } else Toast.makeText(context,「service stopped」,Toast.LENGTH_LONG).show(); }
我寫這個在onReceive()broadcastReceiver 請幫我這個。

回答

0

強行關閉是:

android.os.Process.killProcess(android.os.Process.myPid()); 

填寫您的接收器在AndroidManifest。這樣,它會被稱爲甚至當你的應用程序 沒有運行:R.styleable.AndroidManifestReceiver

然後,您可以在廣播接收器檢查服務是否 仍在運行並重新啓動它。

參見例如SmSForwarder類別here。廣播接收器 不需要運行,因爲它在 AndroidManifest.xml(參見第29行)中註冊。一旦發送了意圖 「android.provider.Telephony.SMS_RECEIVED」,Android將立即啓動 廣播接收器。

+0

是的,我正在做同樣的事情。我檢查ic我的服務正在運行使用此代碼,但它始終顯示「服務運行」吐司布爾isServiceRunning = AppSettings.getServiceRunning(context); \t \t \t 如果\t(isServiceRunning) \t \t { \t \t \t Toast.makeText(上下文中, 「服務運行」,Toast.LENGTH_LONG).show(); \t \t \t \t \t} \t \t其他 \t \t {\t \t \t \t Toast.makeText(背景下, 「停止服務」,Toast.LENGTH_LONG)。顯示(); \t \t \t \t}我寫這個在onReceive()廣播接收器 – Manasi

0

用戶強制關閉後重新啓動應用程序可能會將其視爲惡意軟件的標誌。它非常不鼓勵。話雖如此,如果您真的想重新啓動它,請使用AlarmManager並每小時左右檢查應用程序狀態。

而不是短信或電話,它可能是一個更好的主意,趕上android.intent.action.SCREEN_ON意圖並重新啓動您的應用程序。

+0

好的。但我應該重新啓動我的mainActivity使用意圖或啓動服務? – Manasi

+0

您可以開始服務。 –

相關問題