0
AlarmManager를 사용하여 업데이트하는 위젯이 있는데 정상적으로 작동합니다.위젯의 AlarmManager와 함께 OnClick은 저에게 맞지 않습니다
이제 onClick 이벤트를 추가하고 싶습니다. 내 문제는 결코 onClick을 발사하지 않는다는 것입니다. 또는 최소한 내 onRecive에서 처리됩니다.
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// TODO Auto-generated method stub
super.onUpdate(context, appWidgetManager, appWidgetIds);
final int N = appWidgetIds.length;
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
updateAppWidget(context, appWidgetManager, appWidgetId);
//Toast.makeText(context, "onUpdate(): " + String.valueOf(i) + " : " + String.valueOf(appWidgetId), Toast.LENGTH_LONG).show();
}
}
public static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId){
.
.
.
RemoteViews updateViews = new RemoteViews(context.getPackageName(),R.layout.widget_layout);
updateViews.setTextViewText(R.id.widgettext, "[" + String.valueOf(appWidgetId) + "]" + strWidgetText);
Intent intent = new Intent(context, MyWidgetProvider.class);
intent.setAction(MY_WIDGET_CLICK);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,1, intent, 0);
updateViews.setOnClickPendingIntent(R.id.toggle_button_widget, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, updateViews);
그리고 내 onRecive 해고하고 난 단지 행동
그리고 매니페스트 로 MY_WIDGET_UPDATE를 얻을 수 있었다 그 어떤 알람 당신은 내가 그렇게 토스트를 볼 수 있듯이이
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
super.onReceive(context, intent);
if(MY_WIDGET_UPDATE.equals(intent.getAction())){
Bundle extras = intent.getExtras();
if(extras!=null) {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
ComponentName thisAppWidget = new ComponentName(context.getPackageName(), MyWidgetProvider.class.getName());
int[] appWidgetIds = appWidgetManager.getAppWidgetIds(thisAppWidget);
onUpdate(context, appWidgetManager, appWidgetIds);
} else if (MY_WIDGET_CLICK.equals(intent.getAction())) {
Toast.makeText(context, "onClick()", Toast.LENGTH_LONG).show();
}
Toast.makeText(context, "onReceiver()" + intent.getAction(), Toast.LENGTH_LONG).show();
}
}
처럼 보인다
<receiver android:name="company.se.MyWidgetProvider" android:label="News Nobwidget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<intent-filter>
<action android:name="MY_OWN_WIDGET_UPDATE" />
<action android:name="MY_OWN_WIDGET_ONCLICK" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget_info" />
</receiver>
<activity android:name="company.se.HelloWidgetConfig" android:label="Hello Widget Config">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="10" />
</manifest>
그래서 어떤 도움이 감사 안드로이드
미안 아주 새로운;
) 내가 키우면는 onClick 이벤트를 필터링 내 매니페스트를 같아요. 이클립스 디버거를 통해 발생하는 이벤트를 볼 수 있는지 아는 사람이 있습니까?
/올레