App widget的使用:
第一步、创建widget类

package cn.beita.mobilesafe.receiver;import cn.beita.mobilesafe.service.AppWightService;import android.appwidget.AppWidgetProvider;import android.content.Context;import android.content.Intent;public class AppWightReceiver extends AppWidgetProvider {    @Override    public void onDeleted(Context context, int[] appWidgetIds) {                super.onDeleted(context, appWidgetIds);        Intent intent=new Intent(context,AppWightService.class);        context.stopService(intent);    }    @Override    public void onEnabled(Context context) {        super.onEnabled(context);        Intent intent=new Intent(context,AppWightService.class);        context.startService(intent);        System.out.println("Intent intent=new Intent(context,AppWightService.class);");    }   }

第二步、在清单文件中进行配置

      <receiver android:name=".receiver.AppWightReceiver" >            <intent-filter >                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />            </intent-filter>            <meta-data  android:name="android.appwidget.provider" android:resource="@xml/example_appwidget_info" />        </receiver>

第三步、xml— example_appwidget_info

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="294dp" android:minHeight="72dp" android:updatePeriodMillis="0" android:initialLayout="@layout/example_appwidget"></appwidget-provider>

第四步、创建布局文件:layout---example_appwidget

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:background="@drawable/widget_bg_portrait" android:gravity="center_vertical|center_horizontal">    <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/widget_bg_portrait_child" android:orientation="vertical" android:gravity="center_vertical" >        <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dip" android:layout_marginTop="3dip" android:layout_marginBottom="3dip" android:id="@+id/tv_widget_count" android:text="进程数目"/>        <ImageView android:layout_width="fill_parent" android:layout_height="1dip" android:background="@drawable/widget_bg_portrait_child_divider"/>        <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/tv_widget_memeory" android:layout_marginLeft="10dip" android:layout_marginTop="3dip" android:layout_marginBottom="3dip" android:text="可用内存"/>    </LinearLayout>    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical">        <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal">            <ImageView android:layout_width="20dip" android:layout_height="20dip" android:src="@drawable/notification" android:id="@+id/iv_appname" android:layout_margin="4dip"/>            <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_appname" android:layout_toRightOf="@id/iv_appname" android:layout_alignBaseline="@id/iv_appname" android:layout_marginTop="5dip" android:text="手机卫士"/>        </RelativeLayout>        <Button android:layout_width="wrap_content" android:layout_marginLeft="10dip" android:paddingLeft="5dip" android:paddingRight="10dip" android:id="@+id/bt_example_appwidget" android:layout_height="wrap_content" android:background="@drawable/button_shape" android:text="一键清理"/>    </LinearLayout></LinearLayout>

第五步、创建service时时地更新上面的appwidget

package cn.beita.mobilesafe.service;public class AppWightService extends Service {    private AppWidgetManager widgetManager;    private ScheduledExecutorService pool;    @Override    public IBinder onBind(Intent intent) {        return null;    }    @Override    public void onCreate() {        super.onCreate();        widgetManager=AppWidgetManager.getInstance(getApplicationContext());        System.out.println("widgetManager=AppWidgetManager.ge");        pool = Executors.newScheduledThreadPool(1);        pool.scheduleAtFixedRate(new Runnable(){                @Override                public void run() {                    ComponentName componentName=new ComponentName("cn.beita.mobilesafe", "cn.beita.mobilesafe.receiver.AppWightReceiver");                    RemoteViews view = new RemoteViews("cn.beita.mobilesafe", R.layout.example_appwidget);                    view.setTextViewText(R.id.tv_widget_count, "当前进程数为:"+TaskUtils.getAllProcess(AppWightService.this));                    view.setTextColor(R.id.tv_widget_count, Color.RED);                    view.setTextViewText(R.id.tv_widget_memeory, "当前可用内存为:"+TextFormat.getDataSize(TaskUtils.getAvailMemeoty(AppWightService.this)));                    view.setTextColor(R.id.tv_widget_memeory, Color.RED);                    Intent intent=new Intent(AppWightService.this,LockClearReceiver.class);                    PendingIntent pendingIntent=PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);                    view.setOnClickPendingIntent(R.id.bt_example_appwidget, pendingIntent);                    widgetManager.updateAppWidget(componentName, view);                }        }, 1, 2, TimeUnit.SECONDS);    }    @Override    public void onDestroy() {        super.onDestroy();        pool.shutdown();    }}

更多相关文章

  1. Android(安卓)Animation Frame动画
  2. android解决UI阻塞问题——创建AsyncTask 子线程
  3. android退出应用程序
  4. Android桌面快捷方式
  5. 【Android】创建、读取XML文件
  6. android 使用linux命令截屏
  7. android 入门demo menu
  8. android 开发实例底部导航(1)
  9. android 调用webservice

随机推荐

  1. [Android]在Avtivity中注册监听器
  2. android 键盘不弹出
  3. Android如何获取手机的屏幕宽高
  4. ch07 Android(安卓)日期与时间对话框
  5. android GPS定位和卫星个数(源码)
  6. android 设置progressbar的背景颜色
  7. Android之drawable state各个属性详解
  8. android wpa_supplicant 流程分析
  9. Android(安卓)开发常用代码片段
  10. 实现Android图片圆角