在某些情況下,我需要在我的應用程序中調用exit()
(我知道這不是完成的最佳方式,但這不是問題)。此外,我想展示一個新的對話框,通知用戶有關崩潰。新活動有時不啓動
我創建了一個新的活動類,一個新的廣播接收器,在清單中註冊它們。接下來,我呼籲:
Intent intent = new Intent(this, AppCloseReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, 0);
try
{
pendingIntent.send();
}
catch(Exception ex){}
System.exit(0);
的問題是,新的窗口出現有時!首先,我認爲System.exit(0);
在新活動有機會開始之前觸發(因爲異步呼叫,認爲在文檔中找不到這個),所以我在pendingIntent.send();
和System.exit(0);
之間加了Thread.sleep(1000)
,但結果是一樣的 - 新窗口出現有時。日誌中沒有任何東西,沒有例外。
新的活動只是一個靜態文本。
這絕對不可靠。調用'System.exit()'基本上關閉了虛擬機。您不能保證關閉虛擬機時會發生任何事情。你當然不能指望在用戶界面中顯示任何內容。請解釋你的用例,也許我們可以提出一個替代方案。 –
我的用例是在某些條件下退出,並告訴用戶爲什麼應用程序停止。作爲替代方案,我正在使用通知,但我希望更多的持久性解決方案應該保持在屏幕上,並等待用戶手動關閉它。 – nikitablack