04 2017 档案
摘要:一.使用之前的简单封装的OkHttpUtil http://www.cnblogs.com/itfenqing/p/6758909.html 二.关键代码: 三.所需权限
阅读全文
摘要:一.接口 二.OkHttpUtil 三.调用
阅读全文
摘要:一.xml数据 二.关键代码MyContentHandler 三.Activity
阅读全文
摘要:一.OkHttpClient详细简洁:https://github.com/hongyangAndroid/okhttputils 二.基本示例(Get请求)
阅读全文
摘要:一.关键代码 二.布局文件: 三.所需权限
阅读全文
摘要:Android要求只能在UI线程中更新UI,要想在其他线程中更新UI,大致有四种方式: 1.使用Handler消息传递机制(推荐)2.使用AsyncTask异步任务(推荐)3.使用runOnUiThread(action)方法;4.使用View的post(Runnabel r)方法;5.使用hand
阅读全文
摘要:一.Service中关键代码 Alarm机制:首先我们来看一下Alarm 机制的用法吧,其实并不复杂,主要就是借助了AlarmManager 类来实现的。这个类和NotificationManager 有点类似,都是通过调用Context 的getSystemService() 方法来获取实例的,
阅读全文
摘要:一.为什么要用IntentService? 1.服务的代码都默认运行在主线程中,如果在服务中有耗时操作,这将导致ANR错误(Application Not Responding) 2.所以耗时操作就需要在Service中启动另一个线程,但这种服务一旦启动后,就一直在运行。需要调用stopServic
阅读全文
摘要:一.回调接口 二.Service代码 三.Activity关键代码:
阅读全文
摘要:一.使用场景如果要通知多个Activity,广播较为适合.但广播较为耗费性能. 二.Broadcast更新Activity中的UI 1.新建一个接口OnUpdateUI,用于回调更新UI 2.BroadcastReceiver代码 3.Activity中代码: 三.Service发送广播,广播更新A
阅读全文
摘要:一.动态注册关键代码 二.静态注册 AndroidManifest.xml 两者区别:动态注册广播需要在每个活动页注册,静态广播可以实现注册到所有活动页.因为动态注册逻辑写在onCreate中,所以应用如果没启动,则无法通知.静态注册可不受此限制.
阅读全文
摘要:一.bindService和startService的区别: 执行startService时,Service会经历onCreate->onStartCommand。当执行stopService时,直接调用onDestroy方法。调用者如果没有stopService,Service会一直在后台运行,下
阅读全文
摘要:一.AsyncTask优点:尽管可以使用Handler来异步更新,但其代码复杂.与Handler相比,AsyncTask更加简单快捷,过程可控. 二.基本由于AsyncTask 是一个抽象类,所以如果我们想使用它,就必须要创建一个子类去继承它。在继承时我们可以为AsyncTask 类指定三个泛型参数
阅读全文
摘要:VideoView播放视频常见方法: 关键代码: 所需权限:
阅读全文
摘要:一.布局代码 二.关键代码 三.PreviewActivity代码 四.所需权限:
阅读全文
摘要:关键代码: 处理相机返回数据,即图片数据: 照相机拍照后,有些图片是获取图片的旋转角度 旋转图片: 图片保存进入文件夹后,在系统图库中显示 所需权限:
阅读全文
摘要:一.基本知识点可以通过新建一个类去继承ContentProvider 的方式来创建一个自己的内容提供器。ContentProvider 类中有六个抽象方法,我们在使用子类继承它的时候,需要将这六个方法全部重写。新建MyProvider 继承自ContentProvider,代码如下所示: 这六个方法
阅读全文
摘要:一.简介内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。目前,使用内容提供器是Android 实现跨程序共享数据的标准方式。 不同于文件存储和SharedPrefe
阅读全文
摘要:SQLiteOpenHelper子类关键代码:
阅读全文
摘要:一.SQLiteAndroid 为了让我们能够更加方便地管理数据库, 专门提供了一个SQLiteOpenHelper 帮助类,借助这个类就可以非常简单地对数据库进行创建和升级. 1.SQLiteOpenHelper 是一个抽象类,这意味着如果我们想要使用它的话,就需要创建一个自己的帮助类去继承它。S
阅读全文
摘要:一.SharedPreferences基本 要想使用SharedPreferences 来存储数据,首先需要获取到SharedPreferences对象。Android 中主要提供了三种方法用于得到SharedPreferences 对象。 1. Context 类中的getSharedPrefer
阅读全文
摘要:一.基本 Context 类中提供了一个openFileOutput ()方法,可以用于将数据存储到指定的文件中。这个方法接收两个参数,第一个参数是文件名,在文件创建的时候使用的就是这个名称,注意这里指定的文件名不可以包含路径, 因为所有的文件都是默认存储到/data/data/<package n
阅读全文
摘要:一:示例图 用户登录后发送一条广播,使其退出 二.管理Activity的类ActivityCollector: public class ActivityCollector { public static List<Activity> activities= new ArrayList<Activi
阅读全文
摘要:一.基本配置1.git config --gloal user.name "Tonay"2.git config --gloal user.email "onay@163.com" 二.创建代码仓库git init 三.提交代码1.添加所有git add . 2.添加单个文件或文件夹git add
阅读全文
摘要:一.为什么要使用本地广播前面我们发送和接收的广播全部都是属于系统全局广播,即发出的广播可以被其他任何的任何应用程序接收到,并且我们也可以接收来自于其他任何应用程序的广播。这样就很容易会引起安全性的问题,比如说我们发送的一些携带关键性数据的广播有可能被其他的应用程序截获,或者其他的程序不停地向我们的广
阅读全文
摘要:一.自定义标准广播 1.新建MyBroadcastReceiverpublic class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent
阅读全文
摘要:一.四大组件之一:广播 Broadcast广播分为标准广播和有序广播 1.标准广播(Normal broadcasts)是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言。这种广播的效率会比较高,但同时也意味着它是无法被截
阅读全文
摘要:一.最终效果图 1.手机 单击新闻后 2.平板 二.构建一个新闻类News public class News { private String title; private String content; public News() { } public String getContent() {
阅读全文
摘要:一.常见限定符 新建layout-large布局,并添加activity-main.xml布局文件.活动启动时,将会根据屏幕大小自动加载对应的布局文件. 二.使用最小宽度限定符(常见格式)large 限定符成功解决了大屏幕的问题,但large到底是多大呢,有时候我们需要精确的尺寸限定.这就有了最小宽
阅读全文
摘要:Fragment生命周期: 重点回调函数: 1. onAttach()当碎片和活动建立关联的时候调用。2. onCreateView()为碎片创建视图(加载布局)时调用。3. onActivityCreated()确保与碎片相关联的活动一定已经创建完毕的时候调用。4. onDestroyView()
阅读全文
摘要:在Fragment简单用法的基础上做修改 一.新建:another_right_fragment.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="ma
阅读全文
摘要:一.示意图 二.新建一个左侧碎片布局left_fragment.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" andro
阅读全文
摘要:一.最终成型图 二.主界面xml布局 三.Msg类: 四.ListView 子项的布局,msg_item.xml: 五.ListView 的适配器类,让它继承自ArrayAdapter,并将泛型指定为Msg 类。新建类MsgAdapter,代码如下: 六.修改MainActivity 中的代码,来为
阅读全文
摘要:将图片保存为扩展名为.9.png的格式直接放入Android Studio中的drawable文件夹,拖拉选择拉伸区域,如下图,即可制作出可拉伸背景
阅读全文
摘要:// 绑定监听 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, in
阅读全文
摘要:目前我们ListView 的运行效率是很低的,因为在FruitAdapter 的getView()方法中每次都将布局重新加载了一遍,当ListView 快速滚动的时候这就会成为性能的瓶颈。 仔细观察,getView()方法中还有一个convertView 参数,这个参数用于将之前加载好的布局进行缓存
阅读全文
摘要:一.定义内容类Fruit 二.定义item布局,fruit_item.xml 三.定义Adapter,FruitAdpater FruitAdapter 重写了父类的一组构造函数,用于将上下文、ListView 子项布局的id和数据都传递进来。另外又重写了getView()方法,这个方法在每个子项被
阅读全文
摘要:一.重要知识点:ArrayAdapter的使用android.R.layout.simple_list_item_1 内置组件 二.xml布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://sch
阅读全文
摘要:select * from information_schema.processlist where HOST LIKE '%192.168.1.8%'; kill ID列
阅读全文
摘要:一.重要知识点 android:background //可以指定图片和颜色getContext(),获取当前对象所在的Context xml布局文件转为View对象:LayoutInflater.from(context).inflate(R.layout.menu, this); 在xml不居中
阅读全文
摘要:四种布局: 一.LinearLayout:线性布局 二.RelativeLayout:相对布局1.根据父容器定位:android:layout_alignParentLeft 左对齐android:layout_alignParentRight 右对齐android:layout_alignPare
阅读全文
摘要:1.宽/高android:layout_width android:layout_height// 取值match_parent //匹配父控件wrap_content //自适应,根据内容 如果指定宽度,请用单位dp 2.控件在父控件中的对齐位置android:layout_gravity 3.控
阅读全文
摘要:一,在被启动的Activity中新加一个静态方法public static void actionStart(Context context, String data1, String data2) { Intent intent = new Intent(context, SecondActivi
阅读全文
摘要:如果目前你手机的界面还停留在ThirdActivity,你会发现当前想退出程序是非常不方便的,需要连按三次Back 键才行。按Home 键只是把程序挂起,并没有退出程序。其实这个问题就足以引起你的思考,如果我们的程序需要一个注销或者退出的功能该怎么办呢?必须要有一个随时随地都能退出程序的方案才行。其
阅读全文
摘要:启动模式一共有四种,分别是standard、singleTop、singleTask 和singleInstance,可以在AndroidManifest.xml 中通过给<activity>标签指定android:launchMode 属性来选择启动模式 1.standard 默认模式在stand
阅读全文
摘要:一.问题由来:如果一个Activity处于停止状态,那么在内存紧张的时候,该活动就有可能被回收,这个时候,回退到该Activity,将会启动onCreate,之前在该Activity做的数据修改,将会丢失. 二.系统在回收活动时,会调用onSaveInstanceState方法,重载该方法,保存数据
阅读全文
摘要:1.在A这个Activity中以startActivityForResult(intent, requestCode)启动B这个Activity 2.在B这个Activity中setResult(resultCode, intent);finish();结束活动 3.重写A这个Activity的on
阅读全文
摘要:1.显式启动Intent intent = new Intent(this, class);startActivity(intent); 2.隐式启动AndroidManifest.xml中定义某个Activity的intent-fliter<intent-filter><action androi
阅读全文
摘要:python处理mysql binlog增量日志 http://python-mysql-replication.readthedocs.io/en/latest/examples.html 同样的项目是alibaba的canal
阅读全文