Android桌面时间的一个小控件

桌面的一个时间的小控件,第一次写,纪念找工作的无聊时光。感谢每一个看过的博文,和看我的博文。

首先布局文件只需要一个textview

    <TextView 
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="显示时间"
        />

真正的控件方法需要

public class WidgetProvider extends AppWidgetProvider{


/**
* 移除的方法
* @描述:
* @作者: Android - sen
* @创建日期: 2016年8月6日 下午3:33:49
*/
@Override
public void onDeleted(Context context, int[] appWidgetIds) {

super.onDeleted(context, appWidgetIds);
}
/**

* @描述:最后一个
* @作者: Android - sen
* @创建日期: 2016年8月6日 下午3:34:03
*/
@Override
public void onDisabled(Context context) {
super.onDisabled(context);

context.stopService(new Intent(context,TimerServier.class));

}
/**
* 添加到屏幕上执行
* @描述:
* @作者: Android - sen
* @创建日期: 2016年8月6日 下午3:34:32
*/
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
context.startService(new Intent(context,TimerServier.class));
}

/**

* @描述:
* @作者: Android - sen
* @创建日期: 2016年8月6日 下午3:34:56
*/
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
super.onReceive(context, intent);
}

还需要一个Service类来不断的更新时间

public class TimerServier extends Service{


private Timer timer;
private SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public IBinder onBind(Intent arg0) {
return null;
}

@Override
public void onCreate() {
super.onCreate();
timer=new Timer();
timer.schedule(new TimerTask() {

@Override
public void run() {
updateViews();
}
}, 0,1000);
}

public void updateViews(){
String time=sdf.format(new Date());
RemoteViews rv=new RemoteViews(getPackageName(),R.layout.width);
rv.setTextViewText(R.id.tv, time);
AppWidgetManager manager=AppWidgetManager.getInstance(getApplicationContext());
ComponentName cn=new ComponentName(getApplicationContext(), WidgetProvider.class);
manager.updateAppWidget(cn, rv);
}

@Override
public void onDestroy() {

super.onDestroy();
timer=null;
}

还要新建一个XML文件夹新建一个

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minHeight="40dp"
    android:minWidth="100dp"
    android:initialLayout="@layout/width"
android:updatePeriodMillis="8640000"
    >
    


</appwidget-provider>

 

 

然后再清单文件中注册 

这个是AppWidgetProvider在清单文件中的注册

resource就是新建XML中的文件

<receiver android:name="com.example.animation360.widget.WidgetProvider" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>


            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/widgetconfig" />
        </receiver>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值