**1.Ablity 之间的跳转
Intent intent = new Intent();
// 通过Intent中的OperationBuilder类构造operation对象,指定设备标识(空串表示当前设备)、
应用包名、Ability名称
Operation operation = new Intent.OperationBuilder()
.withDeviceId("")//可以省略不写
.withBundleName("com.demoapp")//应用包名
.withAbilityName("com.demoapp.FooAbility")//Ability的全路径也可以简写成(".FooAbility")
.build();
// 把operation设置到intent中
intent.setOperation(operation);
startAbility(intent);
2.Slice之间的跳转,传值、回传值
参考连接
3.Ablity之间的跳转,而且是跳转到另一个Ablity中一个特定的Slice**
- 在config.json中修改要跳转到的ablity
"abilities": [
{
"skills": [
{
"actions": [
"gjw"//这个是可以自定义的随便写
]
}
],
"orientation": "unspecified",
"name": "com.gjw.firstdemo.MainAbility",
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"type": "page",
"launchType": "standard"
}
]
- 在要跳转到的ablity的文件中进行修改
public void onStart(Intent intent) {
super.onStart(intent);
super.setMainRoute(MainAbilitySlice.class.getName());
addActionRoute("gjw","com.gjw.firstdemo.slice.SecondAbilitySlice");//这行代码是重点
}
}
- 进行跳转
Intent intent = new Intent();
Operation operation = new Intent.OperationBuilder()
withAction("gjw").build();
intent.setOperation(operation);
startAbility(intent);
跳转过程:
1.点击进行跳转的时候,通过withAction("gjw")方法去config.json中找到对应的action,
2.通过对应的action“gjw”找到对应的ablity
3.找到对应的ablit之后,通过 addActionRoute("gjw","com.gjw.firstdemo.slice.SecondAbilitySlice");方法找到跳转的slice