随笔分类 - 知识-Android
摘要:在开发过程中,有时候,需要这样一种控件,正常情况下不可见,不占用任何布局空间,只在某种特定情况下显示,这种情况下,我们使用一个普通的View,利用设置setVisibility(View.GONE)自然也可以实现,但是这样的话即使我们不需要显示View,Android也会将这个View渲染出来,...
阅读全文
摘要:做项目时候会遇到我们用WebView 打开一个web,希望这个web可以调用自己的一些方法,比如我们在进一个web页面,然后当我们点击web上的某个按钮时,希望能判断当前手机端是否已经登录,如果未登录,那么就会跳转到登录页面(登陆页面是另一个Activity)。这个时候,一个简单的做法就是在按钮动作...
阅读全文
摘要:AsyncTask 顾名思义,是在我们需要执行同步任务的时候使用,这个类可以做一些后台操作,然后将结果返回的UI来,因为这个类本身封装了Handler和Thread,所以我们不需要直接去操作这两个类,使用起来也非常简单。 源码里的注释说了,AsyncTask适合做一些short operations(短操作),如果你需要长时间地维持多线程,建议用Executor,ThreadPoolExecutor,FutureTask等类来实现。其实我们平常使用AsyncTask一般也都是在图片等小文件下载的时候使用。我们使用AsyncTask时需要写一个类继承AsyncTask(AsyncTask是个抽象
阅读全文
摘要:Service 是Android四大组件之一,可以在不显示界面的情况下在后台运行。还有一个作用是通过AIDL来实现进程间通信。Service的启动方式Service的启动方式有两种,startService()与bindService()startService():onCreate->onStartCommand(旧版本为onStart),结束通过stopService(),回调onDestroy如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,但会导致多次调用onStartCommand()方法bindServi
阅读全文
摘要:Android的Handler类应该是常用到的,多用于线程间的通信,以及子线程发送消息通知UI线程刷新View等等。这里我主要总结下我对整个消息传递机制,包括Handler,Looper,Message,MessageQueue类的理解。Looper类:每一个线程都只能拥有一个Looper对象,这里Android是通过将Looper对象设置为当前线程的线程局部变量(这里涉及到ThreadLocal类),可以通过调用Looper.prepare()方法来使当前线程拥有一个Looper对象(主线程不用调用,因为主线程本身已经是拥有Looper对象了)。这里贴出prepare()的源码public
阅读全文

浙公网安备 33010602011771号