Intent intent = new Intent( context, ColorConfigure.class);
Intent.putExtras(AppWidgetManager.EXTRA_APPWIDGET_ID, appwidgetId );
PendingIntent pi = PendingIntent.getActivity( context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
RemoteViews r = new RemoteViews( context.getPackageName(), R.layout. activity_widget);
r.setOnClickPendingIntent(R.I'd.pic, pic);
上面的代码暂时没有工作,也就是说,当我第一次启动窗口小部件时,窗口小部件很容易被加载,但是当我从窗口小部件开始新的活动时,没有任何反应。 但每当我从eclipse重新运行我的应用程序而不删除小部件时,我的小部件开始成功运行没有任何故障。 我真的不知道这个问题是什么?或者,如果有人能够通过向我发送一个小部件的代码来帮助我,该小部件的代码从该活动的按钮开始一个新的活动。
答案 0 :(得分:1)
即使我面临类似的问题我的应用程序主屏幕小部件。这非常类似于fb / twitter主屏幕小部件(显示更新,如果没有签名显示为"你没有签名")。使用Android服务实现。即使你不需要服务。在你的情况下,你不是在调用manager.updateAppWidget(ids,views);
public class NFWidgetProvider extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
final Intent intent = new Intent(context, UpdateService.class);
context.startService(intent);
}
}
<强> Updateservice.class 强> //我的应用程序代码..分类服务类应用程序清单
public void onStart(Intent intent, int startId) {
AppWidgetManager manager = AppWidgetManager.getInstance(this);
ComponentName thisWidget = new ComponentName(this,
NFWidgetProvider.class);
int[] ids = manager.getAppWidgetIds(thisWidget);
final int N = ids.length;
for (int i = 0; i < N; i++) {
int awID = ids[i];
RemoteViews views = new RemoteViews(getPackageName(),
R.layout.widget_layout);
Intent intent = new Intent(this, your intented class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//views.setTextViewText(R.id.widgetcount, visitstext);
PendingIntent pendingIntent = PendingIntent.getActivity(this,
0, intent, 0);
views.setOnClickPendingIntent(R.id.widgetimage, pendingIntent);
manager.updateAppWidget(awID, views);
}