在接入Android SDK的时候,了解了Android多线程后, 我们来了解一下AndroidManifest.xml 和Activitiy.
在Android开发中,无main函数,这个让C\C++\C#程序员不太适应,但是Android提供了Main的入口的,这个就是配置AndroidManifest.xml。
其中在开发Android SDk接入,需要配置 android:configChanges--keyboard|keyboardHidden|screenSize|orientation。 即当屏幕翻转等变化后,Activity不会“死掉”,会调用Activity.onConfigurationChanged() 方法.
另外,jar包中的activity,都是需要在AndroidManifest.xml声明的。
其中这个属性比较重要 android:launchMode(Activity加载模式)
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式
Activity有四种加载模式:
standard:就是intent将发送给新的实例,所以每次跳转都会生成新的activity。
singleTop:也是发送新的实例,但不同standard的一点是,在请求的Activity正好位于栈顶时(配置成singleTop的Activity),不会构造新的实例
singleTask:和后面的singleInstance都只创建一个实例,当intent到来,需要创建设置为singleTask的Activity的时候,系统会检查栈里面是否已经有该Activity的实例。如果有直接将intent发送给它。
singleInstance:
首先说明一下task这个概念,Task可以认为是一个栈,可放入多个Activity。比如启动一个应用,那么Android就创建了一个Task,然后启动这个应用的入口Activity,那在它的界面上调用其他的Activity也只是在这个task里面。
//显示方式声明Intent,直接启动SecondActivity
Intent it = new Intent(MainActivity.this,SecondActivity.class);
//启动Activity
startActivity(it);
// 实例化Intent
Intent it = new Intent();
//设置Intent的Action属性
it.setAction("com.android.activity.MY_ACTION");
// 启动Activity
startActivity(it);
隐式Intent之所以设置Action后,即可找到可能的Activity,是因为Activity的intent-filter属性对外公开了其可以处理的Action。如系统默认的拨打电话、播放音乐等Activity等。
我是MetaPad Paper 老用户了,用了2年多。...
一路东北, 转眼二十年了,最后一次回眸长春,是2004...
中年人的生活 各自欢乐, 又或一地鸡毛,简言之:【悲...
2023年,三年疫情过后第一个春天,我开始了骑行: 空...
2024年 甲辰龙年春节假期,我看了2本小说,茅盾文学...
在VR应用中,有一个相对简单的虚拟现实体验,那...
对程序员而言,写的代码用源码管理系统管理起来,非常方便...
上文中,说明了 Squid3 IP Proxy 隐藏原IP,这里就搭建Squid 3密码账号IP代理进行整理,涉及...
不用插件,js脚本显示星号密码
以前,我是用Chrome插件做这个这的--显示星号密码的。 今天,分享一个不用插件...
今天新采购了柒比贰WordPress主题,安装主题时候报错: MySQL命令行使用sql语句进行建表时,MySQL...