예제로 올라온것 실행해도 안되네용 ㅠ
버튼 클릭시에 unupdate가 수행되지 않습니다.(생성, 제거 시에는 수행됨)
압축 첨부도 했으니 도움 부탁드립니다~~~~~
-----------소스코드 첨부 ----------
package com.rosa.testwidget;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import android.app.Activity;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.widget.RemoteViews;
import android.widget.Toast;
public class TestWidgetProvider extends AppWidgetProvider {
private static final String CLICK_ACTION = "com.rosa.action.test1";
private static final String CHECKED = "checked";
private boolean isChecked = false;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
final int N = appWidgetIds.length;
// Perform this loop procedure for each App Widget that belongs to this provider
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
Intent intent = new Intent(CLICK_ACTION);
//button is clicked.
intent.putExtra(CHECKED, isChecked);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.testwidget_layout);
if(isChecked == true)
views.setImageViewResource(R.id.onoff, R.drawable.off);
else
views.setImageViewResource(R.id.onoff, R.drawable.on);
views.setOnClickPendingIntent(R.id.onoff, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(CLICK_ACTION) == true){
Toast.makeText(context , "onReceive :: ACTION_ACTION1 ", 1000).show();
//button is clicked.
SharedPreferences pref = context.getSharedPreferences(CHECKED, Activity.MODE_PRIVATE);
isChecked = pref.getBoolean(CHECKED, true);
//default value is true.
Editor e = pref.edit();
e.putBoolean(CHECKED, !isChecked);
e.commit();
//isChecked = intent.getBooleanExtra(CHECKED, false);
//isChecked = !isChecked; //toggle button.
//Update Widgets.
AppWidgetManager manager = AppWidgetManager.getInstance(context);
this.onUpdate(context, manager, manager.getAppWidgetIds(new ComponentName(context, TestWidgetProvider.class)));
}else{
try {
Toast.makeText(context , "!!", 1000).show();
} catch (Exception e) {
Toast.makeText(context , "exception!!" , 1000).show();
e.printStackTrace();
}
super.onReceive(context, intent);
}
}




CLICK_ACTION = "com.rosa.action.test1";
요기에 해당하는 값을 필터로 담아두셔야 리시브 받을 수 있어요