Я разрабатываю приложение на Android и имею проблему, когда платформа Android бросает java.lang.InstantiationException при попытке создать экземпляр вложенного класса. Вот сценарий.Невозможно создать экземпляр вложенного класса (расширяет broadcastReceiver) при отправке sendBroadcast
Класс расширения с вложенными активность класса B, который простирается BroadcastReceiver:
public class A extends Activity { public void onCreate(){ ....}; //Class B public class B extends BroadcastReceiver { public void onReceive(...) } }
объявления классов в файле манифеста: ....
Извините за плохой отступ. Просто не удалось найти способ правильно отпечатать код с таким количеством тегов.
- Broadcast от службы:
Intent updateIntent = new Intent();
updateIntent.setAction("desired_action");
sendBroadcast(accountPropertyUpdateIntent);
Со всеми вышеприведенными вещей, код компилируется, но при запуске на устройстве, после трансляции называется, я получаю InstantiationException говоря не может создать pacakage.A $ B, а dalvik говорит, что не найдено.
Теперь весь этот сценарий работает на Android 2.2, но как-то это выходит из строя 2.1.
Я не знаю точно, что происходит. Мне нужна помощь. Возможно, что-то основное не хватает мне.
Может ли кто-нибудь мне помочь? Заранее спасибо.
Я уверен, что вы не можете иметь вложенный класс вещания. Почему вы пытаетесь это сделать? – Falmarri 2010-11-24 16:40:35
Нужна трансляция вещания внутри класса А, чтобы в каком-то широковещательном событии класс B мог напрямую обращаться к членам класса А и соответствующим образом обновлять интерфейс. – Puneet 2010-11-25 03:11:03