场景: PhoneWindowManager.java中处理一个按键事件:按键启动一个app中指定的一个扫码界面
方式:
Context context = mContext;
if (context != null) {
Intent intent = new Intent();
// intent.setClassName(new ComponentName("com.tripod.server","com.tripod.server.TargetActivity"));
//组件参数: 组件包名,组件全限定类名
intent.setComponent(new ComponentName("com.shuxiang.saas", "com.lesoft.wuye.CameraView.WeChatQRCodeActivity"));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //对于非Activity跳转Activity , Intent.Flag必须设置为FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent); //获取上下文,启动跳转Activity
}
备注:当我们从一个非 Activity 上下文(例如在 PhoneWindowManager 中)启动一个 Activity 时,需要为该 Activity 创建一个新的任务栈。通过设置 FLAG_ACTIVITY_NEW_TASK
标志,我们告诉系统创建一个新的任务,并将目标 Activity 放置在该任务的根位置。
其它跳转Activity的场景同理;