- 博客(22)
- 收藏
- 关注
原创 PagerAdapter用法
PagerAdapter用法PageAdapter是一个抽象类,直接继承于Object,导入包android.support.v4.view.PagerAdapter即可使用。关于PageAapter的描述,原文是这样的:Base class providing the adapter to populate pages inside of a ViewPager. You will most l
2017-03-20 14:51:11
319
原创 banner使用
banner实现轮播图 1、搭配swiperefreshlayout刷新不会出现问题 2、可以有多种切换效果 3、可以自定义指示器的位置,大小 4、设置imagescaletype,填充满view的长宽 布局文件:<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/srl" android:
2017-03-20 14:49:12
1038
原创 内存管理
相信一步步走过来的Android从业者,每个人都会遇到OOM的情况。如何避免和防范OOM的出现,对于每一个程序员来说确实是一门必不可少的能力。今天我们就谈谈在Android平台下内存的管理之道,开始今天的主题之前,先再次回顾两个概念。内存泄漏:对象在内存heap堆中中分配的空间,当不再使用或没有引用指向的情况下,仍不能被GC正常回收的情况。多数出现在不合理的编码情况下,比如在 Activity中注册
2017-03-08 20:28:55
178
原创 string.StringBuilder和StringBuffer区别
在执行速度方面的比较:StringBuilder > StringBuffer StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。StringBuilder:线程非安全的 StringBuffer:线程安全的 当我们在字符串缓冲
2017-01-04 16:41:12
294
原创 xml解析
XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser(); parser.setInput(fileInputStream, “utf-8”);//设置数据源编码 int eventCode = parser.getEventType();//获取事件类型 while(eventCode != Xm
2017-01-04 15:52:02
224
原创 ComponentName使用
Intent myIntent = new Intent(); myIntent.putExtra(“state”, 1); //开启其他的ComponentName(组件名称)是用来打开其他应用程序中的Activity或服务的。 //一.myIntent.setClass(context, PlayoneMusicSer
2016-12-27 22:16:09
343
转载 有序广播的优先级问题
同一优先级的广播接收器,动态的要比静态注册的早。 动态注册:即由代码注册的广播接收器静态注册:即在 AndroidManifest.xml 中注册的广播接收器 优先级: 当广播为有序发送的时候,要按这个排序并顺序发送。 sendBroadcast 发送的是无序广播。sendOrderedBroadcast 发送的是有序广播。 好了,现在寻找问题原因,在找原因前肯定有这样的想法,一个有序队列,既然允
2016-12-27 20:50:25
1028
原创 动态获取权限, 以及事件处理
public class MainActivity extends AppCompatActivity {private static final int REQUEST_CODE = 0; // 请求码// 所需的全部权限static final String[] PERMISSIONS = new String[]{ Manifest.permission.RECORD_AUD
2016-12-27 20:04:22
270
原创 判断和检查app应用是否具有某个权限
判断应用是否具有某个权限 一.判断应用是否具有某个权限 PackageManager pm = getPackageManager(); boolean permission = (PackageManager.PERMISSION_GRANTED == pm.checkPermission(“android.permission.RECORD_AUDIO”, “packageName”
2016-12-27 19:15:00
1438
原创 ActivityNotFoundException
android.content.ActivityNotFoundException Activity没有在AndroidManifest配置文件中注册 , 哈哈哈太大意了,
2016-12-20 15:28:14
254
原创 RxJava和EventBus在线程传递及功能区别
1、RxJava有大量丰富强大的operator,可以满足用户的大部分数据处理需求。RxJava另一个强大的地方就是scheduler,用户可以为Observable和Subscriber指定不同的执行线程,在Android中可以方便的将Observable指定在IO线程中运行,Subscriber在UI线程中运行。 2、EventBus比较适合仅仅当做组件间的通讯工具使用,主要用来传递消息。使用
2016-12-20 00:56:47
584
原创 点击AlertDialog弹窗外弹窗不消失
需求:点击对话框外部, 对话框不消失;(Android4.0以上AlertDialog在触摸对话框边缘外部,对话框消失) 解决方法: 情况一:按对话框以外的地方不起作用。按返回键还起作用 在AlertDialog.Builder.create()执行后, 调用etCanceledOnTouchOutside(false);调用这个方法时,按对话框以外的地方不起作用。按返回键还起作用
2016-12-16 10:57:21
906
原创 关于RecyclerView: No adapter attached; skipping layout
RecyclerView: No adapter attached; skipping layout用recyclerVeiw是出现这个bug, 因为这个bug耗了好长时间, 找资料说是布局 问题 或适配器问题1.布局问题,:布局用了线性布局, 解决--换相对试试2.布局管理器没有绑定 3.适配器没有绑定
2016-12-16 09:07:03
3111
2
原创 四大组件之Service服务专题(一)
一、Service概念 1.服务不是一个单独的进程, 一个服务也不是一个单独的线程; 2.服务和后台线程区别: 1)、Service可以放在独立的进程,多以更安全; 2)、使用Service可以依赖现有的binder机制, 不需要再应用层面上处理线程同步等繁杂工作; 3)、系统可以可以重新启动异常死去的Service。
2016-12-15 22:01:15
264
原创 利用Application 存储全变量
通过getApplication()方法获取Application对象, 然后就可以对程序的全局变量进行对应的set get 赋值 获取操作
2016-12-15 16:46:06
279
原创 单例模式
单利模式穿件对象主要分为:懒汉式和恶汉式; 顾名思义:懒汉式:先声明对象但不会创建对象,到用时才创建(寒假作业不写, 到交作业时在“写作业”); 恶汉式:在程序执行时就创建对象, 给调用对象做准备(学霸, 在布置寒假开始就完成了, 只等交作业), 具体代码如下: 懒汉式: public static LanHan getInstance() { if (sin
2016-12-15 16:41:20
192
原创 新浪分享获取签名
1、先打开命令行窗口 2、进入签名文件所在文件夹的路径(cd.android),如:C:\Users\Administrator.Android输入命令 keytool -list -v -keystore debug.keystore 其中“debug.keystore”是studio默认的keystore 可以换成自己生成的签名文件,其中Android Studio生成的后缀名可能是“
2016-12-15 10:21:30
521
原创 判断网络状态进行网络加载等操作
使用NetworkInfo类 获取网络状态, 判断网络状态进行不同的操作 还要添加 相应的权限 internet 和android.permission.ACCESS_NETWORK_STATE
2016-12-14 12:35:08
321
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人