簡體   English   中英

以編程方式卸載應用程序:旋轉設備時崩潰

[英]Uninstall application programmatically: crash rotating the device

我正在嘗試使用所有安裝的應用程序制作一個列表視圖,您可以在其中創建多個卸載應用程序。 我有個問題。 這是代碼。

當我顯示對話框時,如果旋轉設備,請卸載所選的應用程序,該應用程序將因該錯誤而崩潰。

01-19 18:50:13.571: E/AndroidRuntime(25609): FATAL EXCEPTION: main
01-19 18:50:13.571: E/AndroidRuntime(25609): Process: com.myPackage.name, PID: 25609
01-19 18:50:13.571: E/AndroidRuntime(25609): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=0, data=null} to activity {com.myPackage.name/com.myPackage.name.class}: java.lang.NullPointerException
01-19 18:50:13.571: E/AndroidRuntime(25609):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3385)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3428)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at android.app.ActivityThread.access$1300(ActivityThread.java:145)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1254)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at android.os.Handler.dispatchMessage(Handler.java:102)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at android.os.Looper.loop(Looper.java:136)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at android.app.ActivityThread.main(ActivityThread.java:5081)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at java.lang.reflect.Method.invokeNative(Native Method)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at java.lang.reflect.Method.invoke(Method.java:515)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at dalvik.system.NativeStart.main(Native Method)
01-19 18:50:13.571: E/AndroidRuntime(25609): Caused by: java.lang.NullPointerException
01-19 18:50:13.571: E/AndroidRuntime(25609):    at com.myPackage.name.class.onActivityResult(myclass.java:91)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at android.app.Activity.dispatchActivityResult(Activity.java:5423)
01-19 18:50:13.571: E/AndroidRuntime(25609):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3381)
01-19 18:50:13.571: E/AndroidRuntime(25609):    ... 11 more

第91行是for(int a = 0; a

嘗試將其放在Activity定義內的AndroidManifest.xml文件中:

android:configChanges="orientation|keyboardHidden|screenSize"

如果設備旋轉,這將防止您的應用重啟。

一些設備配置可以在運行時更改(例如屏幕方向,鍵盤可用性和語言)。 發生此類更改時,Android將重新啟動runningActivity(onDestroy(),然后調用onCreate())。

為了正確處理重啟,重要的是您的活動必須在正常的活動生命周期內恢復其先前狀態,在Android生命周期中,Android會在銷毀活動之前先調用onSaveInstanceState(),以便您可以保存有關應用程序狀態的數據。 然后,您可以在onCreate()或onRestoreInstanceState()期間還原狀態。

如果您的應用程序在特定的配置更改期間不需要更新資源,並且您有一個性能限制,要求您避免活動重新啟動,則可以聲明您的活動自行處理配置更改,從而防止系統重新啟動您的活動。

而且您可以使用android:configChanges =“在此處放置需要的屬性”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM