说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Android Widget开发实例-电量监控

HTML文档下载 WORD文档下载 PDF文档下载
一个简单的电量监控代码很好地演示了Android平台下Widget开发中的基础方式。

作者:Android开发网

一个简单的电量监控代码可以很好的演示Android平台下Widget开发中的基础方式,比如appWidget如何于Service交互以及RemoteViews的演示。完成的工程代码我们稍作美化后提供下载,同时下次开始我们提供一些国外比较优秀的开源工程实例做剖析,从2007年11月至今SDK发布已经近两年了,相信大家可以看到整个Google Android平台的开发还是十分简单的,难度等级和J2ME相似,相信入门的网友只要经常光顾Android开发站点一定会很好掌握的,具体请看如下代码:

 

import android.app.Service;import android.appwidget.AppWidgetManager;import android.appwidget.AppWidgetProvider;import android.content.BroadcastReceiver;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.IBinder;import android.widget.RemoteViews;public class BatteryMonitorWidget extends AppWidgetProvider{    public void onUpdate( Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds )    {               context.startService(new Intent(context, BatteryMonitorReceiver.class));    }    public static class BatteryMonitorReceiver extends Service    {        private int currentBatteryLevel = 0;        private BroadcastReceiver batteryReceiver = new BroadcastReceiver()        {            @Override            public void onReceive( Context context, Intent intent )            {                currentBatteryLevel = intent.getIntExtra( "level", 0 );            }        };        @Override        public void onStart( Intent intent, int startId )        {            //注册一个动作改变事件捕获,这里为电量改变时即ACTION_BATTERY_CHANGED            registerReceiver( batteryReceiver, new IntentFilter( Intent.ACTION_BATTERY_CHANGED ) );              RemoteViews views = new RemoteViews( getPackageName(), R.layout.main );  //从layout下main.xml中构造widgets            //这里我们应该判断currentBatteryLevel的数值来显示图片电量等级,比如battery_level_1或battery_level_5等等,下面是n            views.setImageViewResource( R.id.ImageView01, R.drawable.battery_level_n );            views.setTextViewText( R.id.myText, currentBatteryLevel + "%" );  //从BroadcastReceiver读取当前的电量等级            ComponentName thisWidget = new ComponentName( this, BatteryMonitorWidget.class );            AppWidgetManager manager = AppWidgetManager.getInstance( this );            manager.updateAppWidget( thisWidget, updateViews ); //开始执行了        }        @Override        public IBinder onBind( Intent intent )        {                  return null;        }    }}

 

 

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘