GL_BOOK_1

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值