Я программирую виджет, который должен обновляться каждый раз, когда я получаю пропущенный вызов. Для этого в методе onEnabled класса AppWidgetProvider регистрирую ContentObserver. Код выглядит следующим образом:ContentObserver не вызван только в устройствах LG
@Override
public void onEnabled(Context context){
this.mcco = new MissedCallsContentObserver(context);
context.getContentResolver().registerContentObserver(Calls.CONTENT_URI, true, this.mcco);
}
код класса MissedCallsContentObserver заключается в следующем:
package bembibre.coolstar.windowsmobilewidget.backend;
import bembibre.coolstar.windowsmobilewidget.backend.textproviders.CallsProvider;
import android.content.Context;
import android.database.ContentObserver;
public class MissedCallsContentObserver extends ContentObserver
{
Context context;
public MissedCallsContentObserver(Context context)
{
super(null);
this.context = context;
}
@Override
public void onChange(boolean selfChange)
{
try{
Thread.sleep(1000);
}
catch(Exception e){
}
new CallsProvider(this.context).setData();
}
}
Метод OnChange вызывается автоматически каждый раз, когда пропущенный вызов принимается по телефону. Это работает во многих устройствах, в которых я его протестировал. Но я также тестировал его на LG L5. Это единственное устройство, в котором оно не работает. Зачем? ContentObservers не то же самое в устройстве Samgung, которое на устройстве LG? В LG метод onChange никогда не вызван. Я также хотел бы задать вопрос о моем отладчике eclipse. С моим телефоном Samsung это работает хорошо, но с Sony Xperia и LG, упомянутыми ранее, он отключается, когда захочет. Нечего делать, отладчик внезапно отключается. Мой провод USB идеален. Также мои USB-порты для компьютера и телефона. Почему отладчик отключается? В logcat не выдается исключение или сообщение об ошибке. Я не знаю, в чем проблема.
Samsung и LG сильно изменяют код рамки, вы проверяли какие-либо сообщения об ошибках LG для этой проблемы? –
Да, да. Я ничего не нашел. И ContentObserver - очень простой механизм Android. Я не понимаю, как производители могут это изменить. Это будет означать, что в телефонах LG многие приложения не будут работать, например, мои. Многим приложениям нужны ContentObservers. – user3289695
Причиной моей проблемы может быть то, что я вызываю конструктор ContentObserver, передавая ему null вместо экземпляра Handler? Это единственная странная вещь, которую я вижу в своем коде. – user3289695