摘要:
最近项目中使用了GreenDAO的3.0以上的版本,出现需要增加删除表的需求,刚开始用,发现官方对增加和删除的方法是每次去修改数据库版本号,版本一旦升级,那么原来数据库中的表会全部删除再重建。太麻烦,如果不修改版本号,单单只是在model中添加@Entity那么会出现说找不到这张单,无法使用,所以在 阅读全文
摘要:
AndroidManifest.xml中增加的receiver 阅读全文
摘要:
在Android项目中,有经验的开发人员都知道,一些耗时的IO操作等都必须在子线程中去操作,那么可以有哪些方法来开启子线程呢,一般可以使用Java中自带的几种方法,也可以使用Andorid特有的一些类。 用Java来实现异步 主要有两种方法来实现异步,继承Thread类和实现Runnable接口 1 阅读全文
摘要:
最近在做项目的时候,为了方便测试人员测试,在应用中加入正式库和测试库切换的功能。为了防止正式库和测试库切换带来的数据冲突,切换的时候必须把当前的数据库清空。代码如下: 必须要加上DaoMaster.createAllTables(daoMaster.getDatabase(),true),不然重新进 阅读全文
摘要:
1. 概述 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户。在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在运行时根据用户的需要动态授予。这样就不需要在安装时被强迫同意某些权限。 2. 正常权限 和 危险权限 阅读全文
摘要:
TYPE_TOAST一直都可以显示, 但是用TYPE_TOAST显示出来的在2.3上无法接收点击事件, 因此还是无法随意使用. 下面是我之前研究后台线程显示对话框的时候记得笔记, 大家可以看看我们项目中有需求需要在后台任务中显示Dialog, 项目最初的做法是用Activity模拟Dialog, 一个Activity已经承载了近20种Dialog, 代码混乱至极. 后来我发现Dialog可以通过... 阅读全文
摘要:
极光推送提供三种方法实现Notification通知 但是前三种方案无法实现自定义声音,只有第四种方案可实现自定义Notification并进行通知 尝试方案一: AndroidManifest.xml MyReceiver.java 尝试方案二: 尝试方案三: 尝试方案四: 接受广播 Action 阅读全文
摘要:
正常情况下的处理: dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)以及在清单文件中添加 <uses-permission android:name="android.permission.SYSTEM_ 阅读全文
摘要:
rxjava+retrofit处理网络请求 在使用rxjava+retrofit处理网络请求的时候,一般会采用对观察者进行封装,实现代码复用和拓展。可以参考我的这篇文章:rxjava2+retrofit封装处理网络请求全解析。一种可行的封装如下: 基类observer 封装请求(登录为例) 这里us 阅读全文
摘要:
问题 在处理6.0运行时权限时,很多人都忽略了这样一个问题: 在一个App应用里,如果已经允许了一个权限比如(读取通讯权限),此刻去调用相机,弹出权限申请对话框,此刻点击拒绝,然后经过处理后弹出去设置权限界面(因为权限总归是要申请),如果再在置界面里打开应用权限设置,此刻不但不打开相机权限反而将已经 阅读全文