Android开发工程师文集-1 小时学会Widget小组件开发

前言

大家好,给大家带来Android开发工程师文集-1 小时学会Widget小组件开发的概述,希望你们喜欢

学会用Widget (小组件)

Widget小组件很方便,很快捷,可以个性化,自己定制,相关功能,可以实时更新最新内容。

  • Widget布局,Widget配置,AppWidgetProvider与Configuration Activity
  • Android Widget
  • xml布局类型:AppWidget Provider
<appwidget-provider
 xmlns:android="http://schemas.android.com/apk/res/android"
 //引用的布局文件
 android:initialLayout="@layout/widget"
 android:minHeight="50dp"
 android:minWidth="100dp"
 //设置更新时间
 android:updatePerioMillis="66666666">
</appwidget-provide>
public class WidgetProvider extends AppWidgetProvider {
 @Override
 public void onDeleted(Context context,int[] appWidgetIds){
  super.onDeleted(context,appWidgetIds);
}
 @Override
 public void onDisabled(Context context){
  super.onDisabled(context);
 }
 @Override
 public void onEnabled(Context context){
  super.onEnabled(context);
  }
 @Override
 public void onReceive(Context context,Intent intent){
  super.onReceive(context,intent);
  }
 @Override
 public void onUpdate(Context context,AppWidgetManager appWidgetManager,int[] appWidgetIds){
 super.onUpdate(context,appWidgetManager,appWidgetIds);
}
}
//TimerService extends Service
Timer timer=new Timer();
timer.shedule(new TimerTask(){
 @Override
 public void run(){
   updateTime();
 }
 },0,1000);
}
//onDestroy
public void onDestroy(){
 super.onDestroy();
 timer=null;
}
//updateTime();
private void updateTime(){
 String time = simpletime.format(new Date());
}

Widget就是个桌面小组件,有了Widget,我们可以直接在桌面上进行各种操作。

Widget使用

  • AndroidManifest中声明AppWidget
  • xml中定义AppWidget配置文件
  • layout中定义Widget布局文件
  • 创建类继承AppWidgetProvider类
//清单文件中
<meta-data
   android:name="android.appwidget.provider"
   android:resource="@layout/widget_setting"/>
//onUpdate()重点
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
 super.onUpdate(context, appWidgetManager, appWidgetIds);
 RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.layout_widget);
 //Intent intent = new Intent();
 Intent intent = new Intent();
 intent.setClass(context, TestWidget.class);
 intent.setAction(WIDGET_BTN_ACTION);
 PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
 remoteViews.setOnClickPendingIntent(R.id.widget_btn, pendingIntent);
 appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
} 
//清单文件
 <intent-filter>
   <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
   </intent-filter>
   <meta-data android:name="android.appwidget.provider"
      android:resource="@xml/widget_provider"/>      

总结

  • 本文讲了Android开发工程师文集-1 小时学会Widget小组件开发,如果您还有更好地理解,欢迎沟通
  • 定位:分享 Android&Java知识点,有兴趣可以继续关注

原文地址:https://www.cnblogs.com/dashucoding/p/9281309.html

时间: 2024-11-10 14:35:09

Android开发工程师文集-1 小时学会Widget小组件开发的相关文章

Android开发工程师文集-1 小时学会SQLite

前言 大家好,给大家带来Android开发工程师文集-1 小时学会SQLite的概述,希望你们喜欢 内容 什么是Sqlite: 效率高,开源,小型,程序驱动,支持事务操作,无数据类型,可嵌入的关系型数据库 独立的,跨平台的,代码量少,简单易用 创建表语句 create table student(_id Integer primary key, name varchar(10), age Integer not null); 删除表 drop table student; 插入数据 Insert

Android开发工程师文集-1 小时学会各种Drawable

前言 大家好,给大家带来Android开发工程师文集-1 小时学会各种Drawable的概述,希望你们喜欢 Drawable介绍 Drawable为抽象类,drawable与view有区别的地方,主要是体现事件和交互性上面. view是面向用户的,是可见的控件,能给它添加点击事件.drawable则相反,不能面向,也不可见,也不能添加点击事件. drawable有好多子类,drawable为抽象类,所以有很多子类来继承它. 主要原理方法 draw() setBounds() BitmapDraw

21小时精通微信小程序开发(仿猫眼电影App、微信小程序问答)|微信小程序开发视频教程

21小时精通微信小程序开发(仿猫眼电影App.微信小程序问答)网盘地址:https://pan.baidu.com/s/1GTpPX4A1U-w_3i6k7lLztQ 密码: 5pcz备用地址(腾讯微云):https://share.weiyun.com/5pzgU1y 密码:nmjyb8 微信小程序是一种不需要下载安装即可使用的应用,它实现了应用"×××"的梦想,用户扫一扫或者搜一下即可打开应用.也体现了"用完即走"的理念,用户不用关心是否安装太多应用的问题.应用

1小时实战入门小程序开发,历史上的今天案例讲解

我们前面学了这么多的小程序基础知识,一直没有用一个实际的案例来把前面的知识点串起来,今天我们就来开发一款简单的<历史上的今天>,来把我们前面的知识点完整的串起来. 老规矩,先看效果图 可以看到我们实现了如下功能 1,列表页 2,列表跳转详情页 3,视频播放(其实是假的,后面给大家讲这个视频播放) 4,网络请求 5,列表到详情数据携带好了,话不多说,我们来直接看代码实现. 一,网络数据的获取 网络数据获取我们用来官方提供的wx.request方法.下面红色框里就是我们的网络数据获取的代码是不是感

慕课网实战—《用组件方式开发 Web App全站 》笔记四-柱状图组件开发

运用HTML5.CSS3.JS流行技术,采用组件式开发模式,开发Web App全站!技术大牛带你统统拿下不同类型的HTML5动态数据报告! <用组件方式开发 Web App全站 > 柱图开发思路 水平柱图开发(HTML的DOM搭建) ???? ???? 水平柱图开发(CSS样式编写) /* 柱状组件样式 */ .h5_component_bar{ } .h5_component_bar .line{ height: 15px; font-size: 12px; line-height: 15p

利用ncurses库开发终端工具箱(1)—— ToDoList小工具开发

准备工作 腾讯云服务器(Ubuntu),C++编程语言 由于想输出界面中包含中文,所以安装库 libncursesw5,依次输入下面三行命令 sudo apt-get install libncursesw5 sudo apt-get install libncursesw5-dbg sudo apt-get install libncursesw5-dev 编译用如下命令 g++ main.cpp -l ncursesw ToDoList小工具开发 思路 由于一开始想的就比较多,想做一个工具箱

Android开发工程师文集-提示框,菜单,数据存储,组件篇

提示框,菜单,数据存储,组件篇 Toast Toast.makeText(context, text, 时间).show(); setDuration();//设置时间 setGravity();//位置 获取: 添加toast.getView(); imageView添加到toast中,addView(); LayoutInflater inflater = LayoutInflater.from(this); View toast_view=inflater.inflate(R.id.,nu

一小时学会用Python Socket 开发可并发的FTP服务器!!

socket是什么 什么是socket所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求.说白了就是一种通信机制.它类似于银行,电信啊这些部分的电话客服部门.你打电话的时候,那边会分配置一个人回答你的问题,客服部门就相当于socket的服务器端了,你这边呢就相当于客户端了,在和你通话结束前,如果有人在想找和你通话的那个说话,是不可能的,因为你在和他通信,当然客服部门的电话交换机也

iOS开发总结(A1)- 第二个小APP开发告一段落,希望和上次一样顺利通过苹果审核,今后几天对这次开发过程作一总结

1. 何时使用delegate 与 block: 2. block 造成的retain cycle: 3. 慎用NSMutable..., 可能不经意间修改了数据 4. Addressbook 框架(iOS9后换成了contact框架,貌似更好用) 5. custom table view cell 6. UITableViewRowAction 7. UIActivityViewController,及UIAlertController 8. 再次确认viewcontroller生命周期,vi