Android之Activty
Android之Activty
| 参数 | 作用 |
|---|---|
| Intent | 启动Activity、Service |
| Bundle | Map形式的Parcelable values. |
| Context | APP的上下文环境 |
处理网页跳转APP的Activity
http://www.example.com/item?key1=value1&key2=value2
https://www.example.com/item?key1=value1&key2=value2
Activity的配置如下
<activity android:name="..XXActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="www.example.com" />
<data android:scheme="https"
android:host="www.example.com" />
<data android:path="/" />
<data android:path="/item" />
</intent-filter>
</activity>
Activity的处理界面中 获取直接跳转的地址
Intent intent = getIntent();
Uri data = intent.getData();
if (data != null) {
String param1 = data.getQueryParameter("param1");
String param2 = data.getQueryParameter("param2"); }
启动模式
- standard:《=4.4的版本是在启动Task中新建;>=5.0的版本是新建或复用Task,根据taskAffinity来定
- singleTop:栈顶复用模式,和标准模式差不多,区别是如果实例已经存在在顶部,会调用onNewIntent()方法代替创建初始化
- singleTask:栈内复用模式,只存在一个实例在系统中,不存在就创建,存在就会被移动到前面并调用onNewIntent()方法
- singleInstance:单实例模式,一种加强版的SingleTask模式,此模式的Activity只能单独位于一个任务栈中。
属性taskAffinity与allowTaskReparenting是配合使用的,taskAffinity指定任务栈名称。属性taskAffinity只有在SingleTask和SingleInstance模式下有效。
启动所有的Activity
-
API 16 finishAffinity()
- API (11 <= API < 16)
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK
|Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
- 自己记录Activity并移除
- APP强制退出
分屏
android:resizeableActivity=["true" | "false"] //支持API 24以上
//设置分屏的大小
<activity android:name=".XXActivity">
<layout android:defaultHeight="500dp"
android:defaultWidth="600dp"
android:gravity="top|end"
android:minHeight="450dp"
android:minWidth="300dp" />
</activity>

浙公网安备 33010602011771号