- 博客(21)
- 收藏
- 关注
原创 Rxjava2+room进行数据库操作使用map进行数据转换的时候会导致其他的观察者收到被观察者的通知
我使用Observable或者Flowable进行的话都会导致其他观察者的onNext方法收到消息,从而进行执行,解决办法改用Single,具体原因不详。纯属记录,有了解的小伙伴望告知...
2019-07-10 19:52:22
495
1
原创 关于room数据库升级出现的igration didn't properly handle user_table(com.example.roomdemo.bean.User).的错误
错误原因` java.lang.IllegalStateException: Migration didn’t properly handle user_table(com.example.roomdemo.bean.User). Expected:TableInfo{name='user_table', columns={userAge=Column{name='userAge', t...
2019-06-26 00:20:31
1514
原创 使用Gson解析Okhttp3返回的结果报错:Exception: closed
报错原因:原因分析:1.我们通过response.body() 得到 ResponseBody 对象(其是一个抽象类,在此我们不需要关心具体的实现类),然后调用 ResponseBody 的 string() 方法得到响应体的内容。分析后 body() 方法没有问题,我们往下看 string() 方法:public final String string() throws IOExcep...
2019-06-24 14:53:15
1344
原创 使用ROOM无法查看到数据库表结构原因分析
使用room生成的数据库文件有三个:.db文件、.db-shm文件、.db-wal文件。db-wal:从3.7.0版本开始,SQLite支持一种新的事务控制机制,称为“写前日志”或“WAL”。当数据库处于WAL模式时,到该数据库的所有连接都必须使用WAL。特定的数据库将使用回滚日志或WAL,但不能同时使用两者。WAL始终位于与数据库文件相同的目录中,并且具有与数据库文件相同的名称,但是附加了...
2019-05-29 15:36:25
3370
6
原创 动态代理通用模式
动态代理Subject.javapublic interface Subject{ void doSomething(String str);}RealSubject.javapublic class RealSubject implements Subject{ @Override public void doSomething(Stri
2018-01-18 11:30:46
167
2
原创 模板模式
1.建立一个抽象模板类public abstract class HummerModel { protected abstract void start(); protected abstract void stop(); protected abstract void alarm(); protected abstract void
2017-12-23 15:36:51
132
原创 抽象工厂模式
1.创建产品接口(所有产品的特性都在)public interface Human { public void getColor(); public void talk(); public void getSex();}2.创建抽象的产品类,实现产品接口(某一款产品的共性)public abstract class AbstractBlackHuman implement
2017-12-21 11:59:40
99
原创 工厂模式
标准代码 1.先建立一个抽象工厂类public abstract class AbstarctFactory { public abstract <T extends AbstractProduct> T createProduct(Class<T> c);}2.建立一个抽象产品类public abstract class AbstractProduct { //产品类的公共方法
2017-12-20 18:26:10
111
原创 单例设计模式
单例设计模式标准单例public class Singleton{ private static final Singleton singleton = new Singleton(); private Singleton(){ } public static Singleton getSingleton(){ return singleton; }
2017-12-13 10:48:50
106
原创 六大设计原则
六大设计原则1. 单一职责原则SRP(Single Responsibility Principle)定义:应该有且仅有一个原因引起类的变更RBAC: Role-Based Access Control基于角色的访问控制建议:对于单一职责,接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化优点:①类的复杂性降低②可读性提高③可维护性提高④变更引起的风险降低2. 里氏替换原则LSP(
2017-12-13 10:25:57
174
原创 Git时间
git init //创建项目仓库git add . //添加文件git commit -m "First Commit" //提交git branch version1.0 //创建一个名字为version1.0的分支git checkout version1.0 //切换到version1.0分支git checkout master //切换到master分支git merge
2017-06-29 17:12:59
307
原创 Android获取图片路径
Android4.4及以上获取图片使用以下方法 @TargetApi(19) private void handleImageOnKitKat(Intent data){ Log.e("handleImageOnKitKat", "handleImageOnKitKat: " ); String imagePath = null; Uri ur
2017-06-27 17:20:39
2518
原创 Notification通知栏的基本使用
public class MainActivity extends AppCompatActivity { Intent intent = new Intent(MainActivity.this,NotificationActivity.class); PendingIntent pi = PendingIntent.getActivity(MainActivit
2017-06-27 15:16:09
259
原创 Windows的Git的基本使用
1.在所在目录打开Git Bash,然后执行git init命令,创建项目仓库 2.使用git add .命令对文件进行添加;(注意,我们可以通过修改.gitignore文件进行控制我们要添加的文件,具体操作请看第8点) 3.使用git commit -m "First Commit"进行提交,双引号中的内容是本次提交的描述 4.可以使用git status查看修改情况,如果想查看修改内容的话
2017-06-27 10:57:09
291
原创 内容提供器访问Android数据库时候必须版本对应一致
public class DatabaseProvider extends ContentProvider { public static UriMatcher uriMatcher; private MyDatabaseHelper databaseHelper; static { uriMatcher = new UriMatcher(UriMatcher.N
2017-06-27 10:12:58
237
原创 关于Android6.0运行时权限处理
关于Android6.0运行时权限处理 if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(MainA
2017-06-24 10:33:04
313
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人