您的位置:首页 > 其它

GL_BOOK_1

2016-05-18 17:33 239 查看
Chapter1

1、Android 系统架构

Linux 内核层、系统运行库、 应用框架层(API)、 应用层

Linux Kernel \ Libraries、Android RunTime \ Appilication FrameWork\Application

2、Android 开发特色

四大组件、系统控件、SQLite数据库、地理位置定位、多媒体、传感器

Chapter2

1、代码隐藏标题栏 setcontentview之前 requestWindowFeature(Window.FEATURE_NO_TITLE)

2、menu onCreateOptionsMenu() res目录-new-folder menu

menu.xml type 选择menu
<item android:id = xxx  android:title = xxx />


getMenuInflater.inflate(R.menu.menu,Menu menu) return true; true表示允许创建的菜单 显示出来;false 创建的菜单将无法显示

onOptionsItemSelected(MenuItem item) switch(item.getItemId()) return true;

3、intent.addCategory(“xxxxx”);intent-filter 标签中 可以有多个 category

intent.setAction(Intent.ACTION_VIEW) \ intent.setData(Uri.parse("http://www.google.com"));


intent-filter data 标签 可以配置以下内容 android : scheme 用于指定数据的协议部分 如 http

android: host 用于指定数据的主机名称 如 www.google.com部分

android : port 用于指定数据的端口部分 一般紧随主机名后

android : path 用于指定主机名和端口名后面的部分

android : mimeType 用于指定可以处理的数据类型 允许使用通配符的方式进行指定

<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name = ""android.intent.category.DEFAULT"/>
<data android:scheme = "http" />
</intent-filter>


4、

Intent intent  = new Intent();
intent.putextra(xxxx,xxxx);
setResult(RESULT_OK,intent);
finish();


onActivityResult(int requestCode,int resultCode,Intent data)

5、任务(Task)活动(Activity ) 栈(返回栈) Back Stack

Android 是使用任务Task 来管理活动的。一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈。栈是一种后进先出的数据结构。

6、
<activity android :name = "xxx" android :theme="@android:style/Theme.Dialog"></activity>


7、活动的启动模式

android:launchMode="singleTask"


四种启动模式:standard/singleTop/singleTask/singleInstance
standard:每次启动 都会新建一个新的实例 并入栈 处于栈顶位置
singleTop: 启动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的。如果不在栈顶,就会创建新的实例
singleTask 整个应用程序只有一个活动的实例 每次启动该活动 都会检查 返回栈中是否存在该活动的实例 ,如果发现 直接使用该活动的实例并 把在这个活动之上的所有活动 统统出栈。 onrestart
singleInstance 和其他程序共享该活动时  前三种启动模式是做不到的 因为 每个应用程序都会有自己的返回栈 ,同一个活动在不同的返回栈中必然是创建了新的实例 。而使用 singleInstance 启动模式的活动 会有一个单独的返回栈来管理这个活动,不管哪个应用程序来访问这个活动,都共用 一个 返回栈 ,也就解决了 共享活动实例 的问题。 getTaskId();
a--> b (singleInstance) --->c  Log.d("a activity","Task id is "+getTaskId());
会发现  a 、c 都隶属于同一个 id 的返回栈 b是一个新的id 返回栈
然后从c开始返回键 : c---> a ----> b
a、c所在的栈 全部清空了 再去返回 b所在的栈 所以表现出来 cab 而非 cba


8、Log.d(“TAG”,getClass().getSimpleName());

9、随时随地退出程序

List<Activity> activities    addActivity(Activity activity) removeActivity(Activity activity)
finishAll(){
for(Activity a : activites){
if(!a.isfinishing()){
a.finish();
}
}
}


10、启动活动的最佳写法

便于维护和调用 每个页面最好写好 包含该页面被启动时需要传递的参数 的启动方法

public class SecondAcitivity extends Activity
{
private static final String KEY_X = "XX";
private static final String KEY_Y ="YY";
public static void actionStart(Context context,String data1,int data2)
{
Intent intent  =  new Intent(context,SecondActivity.class);
intent.putExtra(KEY_X,data1);
intent.putExtra(KEY_Y,data2);
context.startActivity(intent);
}
}


CHAPTER 3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: