随笔分类 -  Android

摘要:Bundle实现了Parcelable接口 (序列化都用Parcelable不用Serializable Parcelable是专用于Android的) 四大组件的三个:Activity Service Receiver 都支持Intent传递Bundle 而ContentProvider天生就是用 阅读全文
posted @ 2016-04-18 17:54 洱海 阅读(213) 评论(0) 推荐(0)
摘要:Widget的实现方式:AppWidgetProvider(定义Widget需要的广播接收器)->开启服务Service(通过AppWidgetManager管理Widget)关键点:1.设置Widget的图标 阅读全文
posted @ 2016-01-26 09:19 洱海 阅读(214) 评论(0) 推荐(0)
摘要:悬浮窗实现原理:悬浮窗要实现,需要用到几个关键的类。WindowManager:声明了 addView() 、updateViewLayout()、removeView()三个方法的接口 要创建出悬浮窗:那就得使用addView(布局对象,布局参数)方法 要更新悬浮窗的数据,如实现拖动悬... 阅读全文
posted @ 2016-01-15 16:47 洱海 阅读(1649) 评论(0) 推荐(0)
摘要:情况1,当程序蹦了报错 如: java.lang.SecurityException: Permission Denial: getTasks() from pid=3391, uid=10096 requires android.permission.GET_TASKS 这种很明显,Manif... 阅读全文
posted @ 2016-01-07 10:45 洱海 阅读(433) 评论(0) 推荐(0)
摘要:type 的取值:应用程序窗口。public static final int FIRST_APPLICATION_WINDOW = 1;所有程序窗口的“基地”窗口,其他应用程序窗口都显示在它上面。public static final int TYPE_BASE_APPLICATION=1;普通应... 阅读全文
posted @ 2016-01-07 10:10 洱海 阅读(1620) 评论(0) 推荐(0)
摘要:getSystemService(服务Name) :是Activity的一个方法,通过传入服务名,可以的到对应的系统服务对象水电费传入的Name返回的对象说明WINDOW_SERVICEWindowManager管理打开的窗口程序LAYOUT_INFLATER_SERVICELayoutInflat... 阅读全文
posted @ 2016-01-06 15:32 洱海 阅读(189) 评论(0) 推荐(0)
摘要:近期在看Launcher的源码,应该能学到点什么,点点滴滴的,想到什么就些什么首先得有一套能用的代码https://github.com/callerge/AtoZLauncher 看README就知道怎么做了,声明Launcher,去掉无效权限,加版本17-201.onKeyDown里面有一个这样... 阅读全文
posted @ 2015-12-25 18:11 洱海 阅读(175) 评论(0) 推荐(0)
摘要:假设一个应用程序有多个ActivityMainActivity: <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category. 阅读全文
posted @ 2015-12-22 17:21 洱海 阅读(188) 评论(0) 推荐(0)
摘要:需求:将手机中的所有应用图标,以应用名称命名,后缀为jpg,存放在SD卡中思路:1.通过getPackageManager().getInstalledPackages(0)获取已安装的包的信息PackageInfo2.通过包信息PackageInfo获取包名、版本名、版本号、当然还有应用图标Dra... 阅读全文
posted @ 2015-12-01 17:35 洱海 阅读(4891) 评论(0) 推荐(0)
摘要:谈到广播,必然会联想到观察者模式 注册广播就相当于主题的registerObserver 取消广播就相当于主题的removeObserver 发送广播就相当于主题的notifyObserver 接收广播就相当于观察者的update 至于什么是观察者模式,这篇文章写得很好啊:http://blog.c 阅读全文
posted @ 2015-11-23 19:57 洱海 阅读(276) 评论(0) 推荐(0)
摘要:方式一:加载简单的文本注意:ListView也是一个控件,所以像button一样加载即可,它不能直接接受数组数据,而是要通过一个适配器Adapter,常用ArrayAdapter 1 public class MainActivity extends Activity { 2 3 @Ove... 阅读全文
posted @ 2015-11-23 15:07 洱海 阅读(248) 评论(0) 推荐(0)
摘要:生命周期:原:http://blog.csdn.net/w709835509/article/details/7655240 1 import android.app.Activity; 2 import android.os.Bundle; 3 4 public class MainActivi... 阅读全文
posted @ 2015-11-23 09:33 洱海 阅读(211) 评论(0) 推荐(0)
摘要:在需要自行耗时操作的时候,且希望操作时不被中断,可以加个小进度 1 public class MainActivity extends Activity { 2 3 4 5 private ProgressDialog progressDialog; 6 7 // .... 阅读全文
posted @ 2015-11-20 16:37 洱海 阅读(419) 评论(0) 推荐(0)
摘要:1.首先需要下载高德的jar包,放在libs目录下2.LocationUtill.java 1 import android.content.Context; 2 3 import com.amap.api.location.AMapLocationListener; 4 import com.a... 阅读全文
posted @ 2015-11-20 16:04 洱海 阅读(837) 评论(0) 推荐(0)
摘要:1.右键项目->Android Tools -> Export ...2.next3.Create 指定文件夹 设置密码4.填写相关信息5.指定签名apk的文件夹路径OK,打完收工,可以愉快的安装使用了!!! 阅读全文
posted @ 2015-11-17 15:39 洱海 阅读(206) 评论(0) 推荐(0)
摘要:第一阶段:简易反编译apk工具介绍:apktool 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看dex2jar 作用:将apk反编译成java源码(classes.dex转化成jar文件)jd-gui 作用:查看APK中classes.dex转化成出的jar文件,即源码文件st... 阅读全文
posted @ 2015-11-17 14:35 洱海 阅读(156) 评论(0) 推荐(0)
摘要:一、获取全局Context——解决Toast找不到可用Contex的尴尬Application类,当应用程序启动的时候,系统将会对这个类初始化,可以定制一个Application类,管理程序全局状态信息,如Context定制Application 1 package com.example.cont... 阅读全文
posted @ 2015-11-10 17:28 洱海 阅读(230) 评论(0) 推荐(0)
摘要:WebView简单体验——可内嵌在应用程序的浏览器WebView是一个封装了网络请求,数据解析的这么一个控件,可作为程序的内置浏览器使用注意声明网络访问权限:android.permission.INTERNET1 1 protected void onCreate(Bundle ... 阅读全文
posted @ 2015-11-06 20:29 洱海 阅读(202) 评论(0) 推荐(0)
摘要:服务默默的在后台工作着,执行着不需要和用户交互的工作。服务依赖于应用程序进程而存活作为四大组件之一,服务具备共同的特点——需要在AndroidManifest中注册Android多线程编程需要注意的是——一定不要在子线程中进行UI操作,否则会阻塞主线程出现异常 1 /** 主要的逻辑是在这里... 阅读全文
posted @ 2015-11-06 12:15 洱海 阅读(263) 评论(0) 推荐(0)
摘要:阶段一:初识通知发送通知:通过NotificationManager的实例 manager.notify(通知的id,通知实例Notification);所以先要获取manager:NotificationManager manager = (NotificationManager) getSyst... 阅读全文
posted @ 2015-10-29 18:08 洱海 阅读(321) 评论(0) 推荐(0)

.First { margin: 10px 0; font-family: 'Microsoft Yahei'; text-align: left; padding: 6px 20px; color: #fff; background: #55895B; font-size: 20px; border-radius: 4px; clear: both; } .Second { margin: 10px 0; font-family: 'Microsoft Yahei'; padding: 6px 20px; background: #93C8A2; color: white; font-size: 18px; border-radius: 4px; clear: both; } .Third { margin: 10px 0; padding: 6px 20px; font-family: 'Microsoft Yahei'; margin: 15px 0; font-size: 16px; color: black; background: #C6EFD2; border-radius: 4px; clear: both; } .note { margin: 10px 0; padding: 15px 20px 15px 60px; background: #FCFAA9 url('http://images.cnblogs.com/cnblogs_com/libaoheng/305804/o_yellow-pin.png') no-repeat 20px 0; font-size: 15px; font-family: 'Microsoft Yahei'; box-shadow: 0 0 8px #aaa; clear: both; } .demo { text-align: left; padding: 6px 20px; overflow: auto; border-radius: 4px; background: orange; color: #fff; font-size: 16px; clear: both; } .cnblogs_Highlighter { border: solid 1px #ccc; clear: both; } .cnblogs_code { background: #EFFFF4; border: solid 0px #939393; font-size: 14px; clear: both; padding: 10px 20px; } .cnblogs_code pre { font-size: 14px; } .cnblogs_code span { font-family: Courier New; font-size: 14px; }