ACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程序不能接收到这个广播)ACTION_PACKAGE_REPLACED 一个新版本的应用安装到设备,替换之前已经存在的版本ACTION_PACKAGE_REMOVED 一个已存在的应用程序包已经从设备上移除,包括包名(正在被安装的包程序不能接收到这个广播) public class AppInstallReceiver extends BroadcastReceiver { @Override pu…
[Android]Android 监听apk安装替换卸载广播 首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程序不能接收到这个广播)ACTION_PACKAGE_REPLACED 一个新版本的应用安装到设备,替换之前已经存在的版本ACTION_PACKAGE_CHANGED 一个已存在的应用程序包已经改变,包括包名ACTION_PACKAGE_R…
作者地址http://www.jianshu.com/u/63915ef020e2 针对Android Tv的自定义RecyclerView 作者 wenju_song 关注 2016.12.09 19:52* 字数 814 阅读 1368评论 17喜欢 22 前言:Android TV Launcher页在RecyclerView出来之前大家用GridView去实现.TV开发有五向键的监听,遥控器hover监听,点击事件等.用GridView去处理焦点是有一定挑战性的,往往会出现不可预料焦点错…
上篇介绍了跨进程实时通讯http://www.cnblogs.com/xiaoxiaing/p/5818161.html 但是他有个缺点就是服务端无法推送消息给客户端,今天这篇文章主要说的就是服务器推送数据给客户端 原理:客户端注册回调函数,并把回调的对象当做参数传递给服务端,这种服务端调用函数其实就是回调客户端的函数,废话不多说,直接看代码! 首先是服务端的AIDL文件 IAidlHguConnCallback.aidl文件 package tel.gateway.connservice; i…
Android ViewTreeObserver简介   一.结构 public final class ViewTreeObserver extends Object java.lang.Object android.view.ViewTreeObserver   二.概述 这是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知.这个全局事件不仅还包括整个树的布局,从绘画过程开始,触摸模式的改变等.ViewTreeObserver不能够被应用程序实例化,因为它是由…
android自定义动画注意是继承Animation,重写里面的initialize和applyTransformation,在initialize方法做一些初始化的工作,在applyTransformation方法进行相应的轨阵变化即可! 直接上demo! public class Rotate3dAnimation extends Animation { // 开始角度 private final float mFromDegrees; // 结束角度 private final float…
转载自刘明渊 的博客地址:http://blog.csdn.net/vanpersie_9987 Fragment 是 Android API 中的一个类,它代表Activity中的一部分界面:您可以在一个 Activity 界面中使用多个 Fragment,或者在多个 Activity 中重用某一个 Fragment. 本文将介绍 Fragment 的 定义.创建.添加.移除.生命周期 等,如需访问官方原文,您可以点击这个链接(大多数情况下你得借助某些工具才可以访问): https://dev…
android:layout_width 指定组件布局宽度 android:layout_height 指定组件布局高度 android:alpha 设置组件透明度 android:background 设置组件背景颜色 android:clickable  设置组件是否可以激发单击事件 android:contentDescription  设置组件的描述信息,在界面上不显示,可以用来存储一些信息 android:drawingCacheQuality  设置组件所使用的绘制缓存的质量 and…
通过这张图,我们可以知道一个MediaPlayer对象有以下的状态: 1)当一个MediaPlayer对象被刚刚用new操作符创建或是调用了reset()方法后,它就处于Idle状态.当调用了release()方法后,它就处于End状态.这两种状态之间是MediaPlayer对象的生命周期. 1.1) 在一个新构建的MediaPlayer对象和一个调用了reset()方法的MediaPlayer对象之间有一个微小的但是十分重要的差别.在处于Idle状态时,调用getCurrentPosition…
这里提供一些MediaPlayer的简单方法,方便以后熟练的使用它! 1)如何获得MediaPlayer实例: 可以使用直接new的方式: MediaPlayer mp = new MediaPlayer(); 也可以使用create的方式,如: MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了 2) 如何设置要播放的文件: MediaPlayer要播放的文件主要包括3个来源: a. 用户在…