위젯에
어플이 로그아웃중인지를 판단해야되어가지구요
로그아웃 함수에다가
Intent diaryWidget = new Intent("android.appwidget.action.APPWIDGET_UPDATE");
PendingIntent mSender = PendingIntent.getBroadcast(getApplicationContext(), 0, diaryWidget, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager mManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
mManager.set(AlarmManager.RTC, System.currentTimeMillis(), mSender);
알람을 설정해주었습니다.
위젯에는
@Override
public void onReceive(Context context, Intent intent)
{
super.onReceive(context, intent);
String action = intent.getAction();
// 위젯 업데이트 인텐트를 수신했을 때
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
ComponentName thisComponent = new ComponentName(context, DiaryWidget2_1.class);
int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisComponent);
final int N = allWidgetIds.length;
if(action.equals("android.appwidget.action.APPWIDGET_UPDATE"))
{
Log.w(TAG, "android.appwidget.action.APPWIDGET_UPDATE");
for(int i = 0 ; i < N; i++){
DiaryWidget2_1.updateAppWidget(context, appWidgetManager, allWidgetIds[i]);
}
}
// 위젯 제거 인텐트를 수신했을 때
else if(action.equals("android.appwidget.action.APPWIDGET_DISABLED"))
{
Log.w(TAG, "android.appwidget.action.APPWIDGET_DISABLED");
}
}
리시브를 구현해주었구요
정상적으로 작동하나 문제가 있습니다.
로그아웃 후 몇초가 지나야 리시브를 받습니다.
로그아웃 하자마자 바로 받게 하고싶은데
어떻게 해야 될지 궁금합니다.
System.currentTimeMillis() - 5000 등 임의로 초를 깎아 보았으나 기기별 리시브 받는 속도가 다른 것 같습니다.