100_桌面小控件的更新和显示

来源:互联网 发布:国企 保障房 知乎 编辑:程序博客网 时间:2024/05/16 13:43

一、更新控件的服务中


public class UpdateWidgetService extends Service {
private Timer timer;
private TimerTask task;


@Override
public IBinder onBind(Intent intent) {
return null;
}


@Override
public void onCreate() {
super.onCreate();
// 开启定期的任务更新widget.
timer = new Timer();
task = new TimerTask() {
@Override
public void run() {
AppWidgetManager awm = AppWidgetManager.getInstance(getApplicationContext());
ComponentName component = new ComponentName(getApplicationContext(), MyWidget.class);
RemoteViews views = new RemoteViews(getPackageName(),R.layout.process_widget);
views.setTextViewText(R.id.process_count,"正在运行:XXXX");
views.setTextViewText(R.id.process_memory,"可用内存:XXX");


/*
Intent intent = new Intent();
intent.setAction("com.itheima.killall");
//设置一个自定义的广播事件 动作  com.itheima.killall
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
views.setOnClickPendingIntent(R.id.btn_clear, pendingIntent);
*/

awm.updateAppWidget(component, views);


}
};
timer.schedule(task, 1000, 2000);

}
@Override
public void onDestroy() {
timer.cancel();
task.cancel();
timer = null;
task = null;
super.onDestroy();
}
}


二、MyWidget 类中

public class MyWidget extends AppWidgetProvider {
@Override   //第一个小控件创建时调用
public void onEnabled(Context context) {
//开启服务定期的更新界面.
Intent intent = new Intent(context,UpdateWidgetService.class);
context.startService(intent);
super.onEnabled(context);
}

@Override     //最后一个小控件被删除时调用
public void onDisabled(Context context) {
//关闭掉服务
Intent intent = new Intent(context,UpdateWidgetService.class);
context.stopService(intent);
super.onDisabled(context);
}


@Override     //最短半个小时执行一次.
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {

//检查下 服务是否还活着.
if(!ServiceStatusUtil.isServiceRunning(context, "com.itheima.mobilesafe.service.UpdateWidgetService")){
Intent intent = new Intent(context,UpdateWidgetService.class);
context.startService(intent);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
}



0 0
原创粉丝点击