ikroal's blog

Through the darkest alleys and loneliest valleys

0%

BroadCasts 定义及其作用

BroadCasts 是一种广播机制,类似于发布-订阅这种机制,当发生一些事件的时候,系统或程序就会发送(发布)一些相关的广播,而注册(订阅)了这些广播的程序就会通过广播接收器去响应这些广播。

阅读全文 »

在 Ubuntu 14.04 下创建 Android 虚拟机时可能会出现下列错误:

An error occurred while creating the AVD. See idea.log for details

在网上查找之后很多人建议使用 sudo apt-get install lib32stdc++6 这条命令,但是实际上采用这条命令去安装会出现依赖冲突的问题,所以需要借助 sudo aptitude -f install lib32stdc++6 去解决依赖问题,这条语句使用一次可能并不能解决问题,实际当中我运行了三次才解决了依赖的冲突的问题,每一次运行的时候依次选择 no->yes->yes。具体要运行几次,必须看 lib32stdc++6 库是否安装成功。

阅读全文 »

线程的作用

线程(英语:Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

简而言之,线程的存在是为了实现程序的并发操作,提高执行效率。

阅读全文 »

LayoutInflater 的获取

获取 LayoutInflater 的方式一般有三种:

  1. getLayoutInflater()
  2. LayoutInflater.from(Context context)
  3. context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)

这三种获取方式本质上都是一样的

  • getLayoutInflater() 通过 getWindow().getLayoutInflater() 进行获取,getWindow() 获取的是 PhoneWindow,然后 PhoneWindow 通过 mLayoutInflater = LayoutInflater.from(context) 获取 LayoutInflater。

  • LayoutInflater.from(Context context) 内部通过以下代码获取 LayoutInflater。

阅读全文 »

AsyncTask 的作用

AsyncTask 允许对用户界面执行异步操作。 它会先阻塞工作线程中的操作,然后在 UI 线程中发布结果,而无需您亲自处理线程和/或处理程序。

AsyncTask 基于异步消息处理机制进行实现,通过 AsyncTask 能够很简单的从子线程切换至主线程。

阅读全文 »

首先查看官方 API 的解释:

This hook is called whenever an item in your options menu is selected. The default implementation simply returns false to have the normal processing happen (calling the item's Runnable or sending a message to its Handler as appropriate). You can use this method for any items for which you would like to do processing without those other facilities.

阅读全文 »

安装与引入

在引入 File Input 之前首先需要下载下列文件:

1
2
3
bootstrap-fileinput/css/fileinput.min.css
bootstrap-fileinput/js/fileinput_locale_zh.js
bootstrap-fileinput/js/fileinput.min.js

上述文件可以在 File Input 的项目地址找到。

阅读全文 »