ActivityThread исключение в Android? - PullRequest
2 голосов
/ 17 мая 2010

Я работаю над задачей поиска местоположения, которое хранится в БД. После этого я должен бросить булавку в соответствующем месте. Я внес изменения в поле быстрого поиска (QSB) для поиска в БД, которая находится в моем приложении. для этой производительности QSB я следовал примеру Search Dictionary в API Demos. когда я нажимаю на предложение поиска, оно перезагружает текущую активность и бросает на нее булавку. когда вы нажимаете кнопку «Назад», в Logcat показывается следующее исключение. почему так происходит. Любая идея?

Мой журнал CAT Значение:

05-17 15:16:30.572: ERROR/ActivityThread(17448): Activity com.example.brown.Bru_Maps has leaked IntentReceiver    android.net.NetworkConnectivityListener$ConnectivityBroadcastReceiver@432e6360 that was originally registered here. Are you missing a call to unregisterReceiver()?
05-17 15:16:30.572: ERROR/ActivityThread(17448): android.app.IntentReceiverLeaked: Activity com.example.brown.Bru_Maps has leaked IntentReceiver android.net.NetworkConnectivityListener$ConnectivityBroadcastReceiver@432e6360 that was originally registered here. Are you missing a call to unregisterReceiver()?
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.app.ActivityThread$PackageInfo$ReceiverDispatcher.<init>(ActivityThread.java:748)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.app.ActivityThread$PackageInfo.getReceiverDispatcher(ActivityThread.java:576)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.app.ApplicationContext.registerReceiverInternal(ApplicationContext.java:770)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.app.ApplicationContext.registerReceiver(ApplicationContext.java:757)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.app.ApplicationContext.registerReceiver(ApplicationContext.java:751)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:290)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.net.NetworkConnectivityListener.startListening(NetworkConnectivityListener.java:138)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at com.google.android.maps.MapActivity.onResume(MapActivity.java:232)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1225)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.app.Activity.performResume(Activity.java:3559)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2838)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2866)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1819)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.os.Looper.loop(Looper.java:123)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at android.app.ActivityThread.main(ActivityThread.java:4203)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at java.lang.reflect.Method.invokeNative(Native Method)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at java.lang.reflect.Method.invoke(Method.java:521)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
05-17 15:16:30.572: ERROR/ActivityThread(17448):     at dalvik.system.NativeStart.main(Native Method)

Что такое исключение потока активности в Android? Пожалуйста, помогите.

Ответы [ 3 ]

4 голосов
/ 15 декабря 2011

У меня возникла та же проблема, и после поиска я нашел этот пост о той же проблеме

https://novoda.lighthouseapp.com/projects/63622/tickets/157-leak-receiver-searchresult

предполагает, что проблема возникает при использовании нескольких map activities в вашем приложении.

поэтому в manifest.xml файле моего приложения каждый картографический файл выполнялся в отдельном процессе:

android:process=":p1"
android:process=":p2"

Вы можете узнать больше об этом в документации для Android. http://developer.android.com/guide/topics/manifest/activity-element.html#proc

2 голосов
/ 17 мая 2010

Ваш ответ есть в журнале исключений ..

Вы пропускаете вызов unregisterReceiver ()?

Зарегистрировали ли вы приемник вещания в своем приложении? Если да, вам следует вызвать незарегистрированный приемник, прежде чем уничтожить свою деятельность.

EDIT

Привет ..

Я посмотрел на ConnectivityBroadcastReceiver и нашел это обсуждение.

для разработчиков Android

на андроид гугл код

у них та же проблема .. не могли бы вы опубликовать свой код?

0 голосов
/ 06 июня 2012

Я тоже столкнулся с этой проблемой. В моем случае я использую индикатор батареи и не уничтожаю его при onPause () или onDestroy (). Только что выяснил, что индикатор батареи является вещательным приемником.

Чтобы решить, я сделал следующее:

@Override
public void onPause()
{
    super.onPause();

    unregisterReceiver(myBatInfoReceiver);
}

@Override
public void onResume()
{
    super.onResume();

    registerReceiver(myBatInfoReceiver,
            new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...