一个widget类 一个 service 一个activity ,点击 widget会进入那个activity. activity就是配置widget的信息,里面有一个确定按钮,点击按钮会返回到该widget,因为widget会有几个实例,我想在service中获取为点击的那个widget的id,以实现可以单独更新的目的
确定按钮的clik方法
btnEnter.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Editor editor = mSharedPreferences.edit();
editor.putString("code", edtCode.getText().toString());
editor.putInt("time",
Integer.parseInt(edtTime.getText().toString()));
if (editor.commit()) {
Log.i("WeatherWidget", "保存配置成功");
}
//确定appwidget添加到座面
Intent intent = new Intent();
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
mAppWidgetId); setResult(RESULT_OK, intent);
finish();
}
}); public void onStart(Intent intent, int startId) {
Bundle extras = intent.getExtras();

if (extras != null) {
widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
}

mSharedPreferences = getSharedPreferences("weather"+widgetId, MODE_PRIVATE);
mYWeatherFetcher.setCode(mSharedPreferences.getString("code",
"CHXX0131"));
mTime = mSharedPreferences.getInt("time", 10); Log.i("WeatherWidget", "城市代码" + mYWeatherFetcher.getCode());
Log.i("WeatherWidget", "更新时间" + mTime + "秒");public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
Log.i("WeatherWidget", "onUpdate");
mRemoteVies = new RemoteViews(context.getPackageName(),
R.layout.weatherwidget);
//打开activity
mPendingIntent = PendingIntent.getActivity(context, 0, new Intent(
context, ConfigActivity.class), 0);
//准备做什么
mRemoteVies.setOnClickPendingIntent(R.id.linearLayout, mPendingIntent);
       
appWidgetManager.updateAppWidget(appWidgetIds, mRemoteVies);
         
context.startService(mIntent);
}
这是这几个方法  。 mSharedPreferences = null;
mHandler.post(new MyRunnable());//提交
}