Context context;
AppWidgetManager appWidgetManager;
ComponentName cn;
RemoteViews rv;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
/*Timer timer=new Timer();
timer.scheduleAtFixedRate(new MyTimer(context, appWidgetManager), 0, 1000);*/
rv=new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
cn=new ComponentName(context, WidgetDemo.class);
SimpleDateFormat sdf=new SimpleDateFormat("hh:mm:ss");
rv.setTextViewText(R.id.tv, "当前时间:"+sdf.format(new Date()));
rv.setImageViewResource(R.id.iv, R.drawable.huaixiao);
Intent intent = new Intent("android.appwidget.action.APPWIDGET_UPDATE");
intent.setClass(context,TestActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Bundle bundle=new Bundle();
bundle.putString("name", "hello widget!!!");
intent.putExtras(bundle);
PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, intent, 0);
rv.setOnClickPendingIntent(R.id.iv, pendingIntent);
appWidgetManager.updateAppWidget(cn, rv);
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals("android.appwidget.action.APPWIDGET_UPDATE")){
Toast.makeText(context, "hello!!!", Toast.LENGTH_SHORT).show();
}
System.out.println("OnReceive!!");
super.onReceive(context, intent);
}
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
// TODO Auto-generated method stub
System.out.println("OnDeleted!!");
super.onDeleted(context, appWidgetIds);
}
@Override
public void onDisabled(Context context) {
// TODO Auto-generated method stub
System.out.println("OnDisabled!!");
super.onDisabled(context);
}
@Override
public void onEnabled(Context context) {
// TODO Auto-generated method stub
System.out.println("OnEnabled!!");
super.onEnabled(context);
}
/*class MyTimer extends TimerTask{
Context context;
AppWidgetManager appWidgetManager;
ComponentName cn;
RemoteViews rv;
@Override
public void run() {
// TODO Auto-generated method stub
rv=new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
SimpleDateFormat sdf=new SimpleDateFormat("hh:mm:ss");
rv.setTextViewText(R.id.tv, "当前时间:"+sdf.format(new Date()));
rv.setImageViewResource(R.id.iv, R.drawable.huaixiao);
appWidgetManager.updateAppWidget(cn, rv);
}
public MyTimer(Context context, AppWidgetManager appWidgetManager){
this.context=context;
this.appWidgetManager=appWidgetManager;
cn=new ComponentName(context, WidgetDemo.class);
}
}*/
}
public class TestActivity extends Activity {
String name="";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button=(Button)findViewById(R.id.button);
EditText et=(EditText)findViewById(R.id.et);
Bundle bundle=this.getIntent().getExtras();
try{
if(bundle.getString("name")!=null){
name=bundle.getString("name");
et.setText(name);
}
}catch(Exception e){
e.printStackTrace();
}
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(TestActivity.this, name, Toast.LENGTH_SHORT).show();
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gys.widget"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".TestActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".WidgetDemo"
android:icon="@drawable/huaixiao"
android:label="@string/widget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget"
/>
</receiver>
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="124dip"
android:minHeight="50dip"
android:updatePeriodMillis="180001"
android:initialLayout="@layout/widgetlayout"
/>