AppWidget之应用入门[实时更新系统当前时间]
来源:互联网 发布:查看电脑端口占用情况 编辑:程序博客网 时间:2024/04/29 21:46
ShowTimeNowAppWidget
import java.text.SimpleDateFormat;import java.util.Date;import android.appwidget.AppWidgetManager;import android.appwidget.AppWidgetProvider;import android.content.Context;import android.content.Intent;import android.os.Handler;import android.os.Message;import android.util.Log;import android.widget.RemoteViews;public class ShowTimeNowAppWidget extends AppWidgetProvider { private static final String TAG = "ShowTimeNowAppWidget"; Handler handler; AppWidgetManager widgetManager; RemoteViews remoteViews; Context context; @Override public void onDeleted(Context context, int[] appWidgetIds) { super.onDeleted(context, appWidgetIds); Log.d(TAG, "---------onDeleted----------"); } @Override public void onDisabled(Context context) { super.onDisabled(context); Log.d(TAG, "---------onDisabled----------"); } @Override public void onEnabled(Context context) { super.onEnabled(context); Log.d(TAG, "---------onEnabled----------"); } @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); Log.d(TAG, "---------onReceive----------"); } @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { super.onUpdate(context, appWidgetManager, appWidgetIds); this.context=context; final int appWidgetId=appWidgetIds[0]; //创建一个RemoteViews RemoteViews views=new RemoteViews(context.getPackageName(),R.layout.widgetlayout); widgetManager=appWidgetManager; remoteViews=views; handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 0: //ComponentName component=new ComponentName(ShowTimeNowAppWidget.this.context, ShowTimeNowAppWidget.class); //更新widget上TextView控件的内容 remoteViews.setTextViewText(R.id.widget_time, String.valueOf(msg.obj)); //更新widget widgetManager.updateAppWidget(appWidgetId, remoteViews); break; default: break; } } }; handler.post(new Runnable() { @Override public void run() { Message message=new Message(); message.what=0; message.obj=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date()); handler.sendMessage(message); handler.postDelayed(this, 1000); } }); Log.d(TAG, "---------onUpdate----------"); }}
widgetlayout布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:padding="30dip" android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/widget_img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_dialog_time" /> <TextView android:textSize="16dip" android:textColor="@color/green" android:singleLine="true" android:ellipsize="none" android:gravity="center" android:paddingLeft="5dip" android:layout_toRightOf="@id/widget_img" android:layout_alignTop="@id/widget_img" android:layout_alignBottom="@id/widget_img" android:id="@+id/widget_time" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" /></RelativeLayout>
appwidget-provider描述文件
<?xml version="1.0" encoding="utf-8"?><appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="300dip" android:minHeight="20dip" android:updatePeriodMillis="1000" android:initialLayout="@layout/widgetlayout" ></appwidget-provider>
AndroidManifest.xml中的配置
<receiver android:name=".ShowTimeNowAppWidget" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" /> </receiver>
- AppWidget之应用入门[实时更新系统当前时间]
- Android开发之--实时更新系统时间
- QT中实现当前时间实时更新
- [置顶] js实时获取系统当前时间
- js实时获取当前系统时间
- JS 实时显示系统当前时间
- JavaScript实现实时更新系统时间
- jsp页面实时显示当前系统时间方法
- asp.net页面时间实时更新—UpdatePanel的应用
- asp.net页面时间实时更新—UpdatePanel的应用
- 时间实时更新
- linux实时更新时间
- JS-时间实时更新
- 让textview显示实时更新的系统时间
- php实时显示当前时间
- opencv 实时显示当前时间
- 网页实时显示当前时间
- js实时获取当前时间
- More Effectvie C++笔记(三)--谨慎定义类型转换函数、自增、自减操作符前缀形式与后缀形式的区别
- 我又跑跑了
- Ruby CGI lib compare with Python CGI lib: Get form value
- 让程序在崩溃时体面的退出(合集)
- Javascript_Table_DOM
- AppWidget之应用入门[实时更新系统当前时间]
- 人件
- java中this与super区别,重载和重写区别
- 你的密码安全吗?来用 GPU 暴力破解密码
- Jquery中next和children的区别
- 在二元树中找出和为某一值的所有路径的个人代码
- LINUX虚拟文件系统
- H264参数结构一:元素的分层结构
- web cache 整理