2012-03-22 8 views
0

私はonDestroyを呼ぶところ私が持っているし、その中に、私は次のことを持っている一つの活性がある:アンドロイドonDestroyエラー

@Override 
public void onDestroy() 
{ 
    productAdapter.imageLoader.stopThread(); 

    lvProducts.setAdapter(null); 
    super.onDestroy(); 
} 

productAdapterは私のListViewのアダプタであると私はfedorvlasov遅延ロード機能を使用しています。

問題は、私は長い時間のためのアプリを終了して戻ってきたとき、私は主な活動から、このアクティビティにアクセスしようと、私は以下を取得、次のとおりです。

03-22 09:15:17.684: ERROR/AndroidRuntime(28442): FATAL EXCEPTION: main 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442): java.lang.RuntimeException: Unable to destroy activity {com.MyApp/com.MyApp.Products}: java.lang.NullPointerException 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3081) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3146) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at android.app.ActivityThread.access$2100(ActivityThread.java:132) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1071) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at android.os.Looper.loop(Looper.java:150) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at android.app.ActivityThread.main(ActivityThread.java:4263) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at java.lang.reflect.Method.invoke(Method.java:507) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at dalvik.system.NativeStart.main(Native Method) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442): Caused by: java.lang.NullPointerException 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at com.MyApp.Productss.onDestroy(DailyDeals.java:678) 
03-22 09:15:17.684: ERROR/AndroidRuntime(28442):  at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3063) 

事は、私はいけない、あります私は長い時間のためにアプリを離れると戻ってくる場合にのみ発生するため、これを再現する方法を知っている。 Androidのタイムアウトがあり、この数時間後にアプリがやり直されるような感じがします。

+0

あなたのオブジェクトのうちの1つが既にガーベージされている可能性があります。 productAdapter、lvProductsのnullをチェックしてみてください – Calvin

+0

DailyDeals.javaと678行目にコード行を貼り付けます – Pavandroid

答えて

1

システムは、何か他のものに使用するリソースが必要な場合はいつでも、アプリケーションを強制終了します。これは長い時間の後に戻ったときにもはや走っていない理由です。

なぜこの行がありますか?

lvProducts.setAdapter(null); 

私はあなたにヌルポインタを与えていると思います。 nullアダプタで設定しようとしているのは好きではありません。この行を削除してみてください

また、どの行が678ですか?

+0

fedor lazylistの例では、onDestroyで次のことを行いました:adapter.imageLoader.stopThread(); list.setAdapter(null); – Jesse

+0

しかし、アクティビティを入力するときにonDestroyが呼び出されるのはなぜですか? – Jesse

+0

678はproductAdapter.imageLoader.stopThread()です。最初にnullのproductAdapterとnull imageLoaderを確認できましたが、アプリにこれを再現させるにはどうすればよいですか? – Jesse

関連する問題