Android中解决同步问题的一些方法

synchronized

synchronized修饰静态方法的时候,会持有整个Class类的锁;修饰普通方法的时候,会持有某一个对象的锁。

wait(),notify()

Lock

CountDownLatch

Handler

接口回调配合runOnUiThread

AsyncTask

1.AsyncTask在使用过程中可能会出现崩溃的问题(它不能根据Activity的生命周期自动取消任务)
调用cancel()方法可能不会取消任务,如果doInBackgroud中存在类似BitmapFactory.decodeStream()这种不可中断的操作则无法被取消
2.AsyncTask如果是被创建为Activity的内部类, 那么可能会出现内存泄漏,原因是Activity被销毁时,如果AsyncTask中的任务没有结束,那么它会继续持有Activity的引用,造成内存无法正常回收即内存泄漏
3.当旋转屏幕,或者因为被回收而造成Activity重新创建的时候,之前创建的AsyncTask对象持有的Activity对象引用是已失效的旧的引用,任务执行完毕之后无法对新创建的Activity执行操作

RxJava2

EventBus

你可能感兴趣的:(Android中解决同步问题的一些方法)