1
위젯을 개발하려고했지만 마지막 단계에 있습니다. 장치 부팅 후 위젯에 PendingIntent를 다시 할당하는 방법이 하나뿐입니다.장치 부팅 후 위젯의 PendingIntent를 설정하는 방법
내가 BOOT_COMPLETED 방송 수신 브로드 캐스트 리시버가 :
public static final String TAG = "BootReceiver";
private Context c;
@Override
public void onReceive(Context c, Intent i) {
Log.i(TAG, "Received BOOT_COMPLETED broadcast!");
Intent readPrefsAfterBoot = new Intent(c, my widget class);
readPrefsAfterBoot.setAction(* my custom action *);
c.sendBroadcast(readPrefsAfterBoot);
}
제의 AppWidgetProvider 그 사용자 지정 작업을 수신 이렇게 있습니다 :
** reading saved data from SharedPreferences **
RemoteViews rv = new RemoteViews(context.getPackageName(), my widget layout);
AppWidgetManager awm = AppWidgetManager.getInstance(context);
Intent intent = new Intent(context,my widget class);
intent.setAction(* another custom action *);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
rv.setOnClickPendingIntent(my button, pi);
awm.updateAppWidget(appWidgetIds[i], rv);
그 중 하나를 작동하지 않습니다 또는 힘은 어떤 이유로 폐쇄하는 내가 분석 할 수 없다 ...
브로드 캐스트가 수신되고 인 텐트가 호출되면 로그를 사용하여 디버그를 시도하십시오. 그런 다음 logcat을 사용하여 전화를 다시 시작하십시오. – Warpzit
Eclipse에서 'adb logcat', DDMS 또는 DDMS 퍼스펙티브를 사용하여 LogCat을보고 "강제 종료"와 관련된 스택 추적을 검토하십시오. – CommonsWare
많은 앱을 설치하고 내 위젯을 많이 사용하기 때문에 다소 시간이 걸릴 것입니다 ... 하지만 그 동안에는 문제가 위젯 클래스에 사용되는 컨텍스트에서 발생했을 가능성이 있습니까? – Netanel