2012-03-22 4 views
0

В моем приложении есть одна деятельность у меня есть, где я называю OnDestroy и внутри него я следующее:Android 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

Очень вероятно, что один из ваших объектов уже сфотографирован. Попробуйте проверить значение null для productAdapter, lvProducts – Calvin

+0

Вставьте строку кода в DailyDeals.java и строку 678 – Pavandroid

ответ

1

Система будет убивать ваше приложение, когда ему понадобятся ресурсы, которые нужно использовать для чего-то другого. Вот почему, когда вы возвращаетесь через долгое время, он больше не работает.

Почему у вас есть эта линия?

lvProducts.setAdapter(null); 

Я думаю, что это то, что дает вам нулевой указатель. Не нравится, что вы пытаетесь установить его с помощью нулевого адаптера. Попробуйте удалить эту строку

Также, конечно, какая линия 678?

+0

Пример lazylist федератора: вы делаете следующее в onDestroy: adapter.imageLoader.stopThread(); list.setAdapter (null); – Jesse

+0

Но почему он даже вызывает onDestroy, когда я вхожу в действие. – Jesse

+0

678 - продуктAdapter.imageLoader.stopThread(); Я мог бы просто сначала проверить null productAdapter и null imageLoader, но как я могу заставить приложение воспроизвести это? – Jesse

Смежные вопросы