부재 중 전화를받을 때마다 자체적으로 업데이트해야하는 위젯을 프로그래밍하고 있습니다. 이를 위해 AppWidgetProvider 클래스의 onEnabled 메서드에서 ContentObserver를 등록합니다.ContentObserver가 LG 장치에서만 호출되지 않습니다.
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가 부재 중 전화가 전화가 수신 될 때마다 자동으로 호출되는 방법
@Override
public void onEnabled(Context context){
this.mcco = new MissedCallsContentObserver(context);
context.getContentResolver().registerContentObserver(Calls.CONTENT_URI, true, this.mcco);
}
클래스 MissedCallsContentObserver에 대한 코드는 다음과 같다 : 코드는 다음과 같다. 이것은 내가 테스트 한 많은 장치에서 작동합니다. 하지만 LG L5에서도 테스트를 마쳤습니다. 이것은 작동하지 않는 유일한 장치입니다. 왜? ContentObservers는 LG 전자 장치의 Samgung 장치에서 동일하지 않습니다? LG에서는 onChange 메서드가 호출되지 않습니다. 또한 제 일식 디버거에 대한 질문을하고 싶습니다. 내 삼성 전화로 잘 작동하지만 소니 Xperia와 LG가 전에 언급했듯이, 필요할 때 연결이 끊어집니다. Withouth가 아무 일도하지 않으면 디버거가 갑자기 끊어집니다. 내 USB 와이어가 완벽합니다. 또한 컴퓨터와 휴대 전화의 USB 포트. 디버거가 끊기는 이유는 무엇입니까? logcat에 예외 또는 오류 메시지가 표시되지 않습니다. 나는 그 문제가 뭔지 모른다.
삼성과 LG는 프레임 워크 코드를 크게 수정했습니다.이 문제점에 대한 LG 버그 보고서를 확인 했습니까? –
예, 했어요. 나는 아무것도 발견하지 못했다. ContentObserver는 매우 기본적인 Android 메커니즘입니다. 제조업체가 어떻게 변화시킬 수 있는지 이해하지 못합니다. 이것은 LG 휴대폰에서 광산과 같은 많은 애플리케이션이 작동하지 않는다는 것을 의미합니다. 많은 응용 프로그램에는 ContentObservers가 필요합니다. – user3289695
내 문제의 원인은 Handler 인스턴스 대신 null을 전달하는 ContentObserver 생성자를 호출하는 것일 수 있습니다. 그것은 내 코드에서 볼 수있는 유일한 이상한 일입니다. – user3289695