imsdroid启动Activity的方式很独特

简介: imsdroid启动Activity的方式很独特

近来在调试imsdroid,想限制转屏。结果发现常用的办法无效。这是为什么呢?后来研究了一下启动Activity的代码,有点独特。具体代码是:


@Override
  public boolean show(Class<? extends Activity> cls, String id) {
  final Main mainActivity = (Main)Engine.getInstance().getMainActivity();
  String screen_id = (id == null) ? cls.getCanonicalName() : id;
  Intent intent = new Intent(mainActivity, cls);
  intent.putExtra("id", screen_id);
  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  final Window window = mainActivity.getLocalActivityManager().startActivity(screen_id, intent);
  if(window != null){
    View view = mainActivity.getLocalActivityManager().startActivity(screen_id, intent).getDecorView();
    LinearLayout layout = (LinearLayout) mainActivity.findViewById(R.id.main_linearLayout_principal);
    layout.removeAllViews();
    layout.addView(view, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    // add to stack
    this.mLastScreens[(++this.mLastScreensIndex % this.mLastScreens.length)] = screen_id;
    this.mLastScreensIndex %= this.mLastScreens.length;
    return true;
  }
  return false;
  }


 初步分析来说,相当于把一个Activity作为容器,然后把另外一个Activity放进去。也就是说,要想设置,就必须在主Activity中(或者在Manifest.xml)。

目录
相关文章
|
SQL 人工智能 移动开发
Android应用启动流程:从启动到可交互的过程解析
Android应用启动流程:从启动到可交互的过程解析
|
前端开发 JavaScript Android开发
《移动互联网技术》第五章 界面开发: 掌握Activity的基本概念,Activity的堆栈管理和生命周期
《移动互联网技术》第五章 界面开发: 掌握Activity的基本概念,Activity的堆栈管理和生命周期
102 0
|
Java Android开发
移动应用程序设计基础——Android环境构建与Activity生命周期
安装智能手机开发相关软件平台,并在此基础上测试Activity的生命周期过程。 5、 完成智能手机开发平台安装、以及相关配置; 6、 并实现Hello World; 7、 添加Log日志,通过Log日志验证Ac 1、 安装JAVA JDK 2、 安装Android Studio,熟悉AS的基本操作,改变AS的字体,显示方式;截图和文字说明。 3、 建立新项目,实现Hello World。说明各个文件的作用,以及各个关键语句的作用或含义,给出程序的运行结果。 4、 设置生命周期的Log日志,分别执行相关操作
307 0
移动应用程序设计基础——Android环境构建与Activity生命周期
|
XML Java Android开发
【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | ActivityThread 主函数分析 | 应用初始化 | 启动优化项目 )
【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | ActivityThread 主函数分析 | 应用初始化 | 启动优化项目 )
309 0
|
Android开发 开发者
【Android 应用开发】Activity 返回堆栈管理 ( 栈内复用模式 singleTask | 单实例模式 singleInstance )
【Android 应用开发】Activity 返回堆栈管理 ( 栈内复用模式 singleTask | 单实例模式 singleInstance )
437 0
|
容器
imsdroid启动Activity的方式很独特
imsdroid启动Activity的方式很独特
117 0
|
Android开发
3-AI--Activity间的数据传递
零、前言 打开FromActivity,通过按钮以返回结果方式打开ToActivity,同时在intent中加入数据,在ToActivity的onCreate方法中使用数据填充到TextView上。
1073 0
|
XML 数据格式 容器
Activity布局加载流程
Activity布局加载流程 一、布局加载流程 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.
1153 0
|
Android开发
Activity从创建到显示的整个过程
写在前面的话 今天有点烦,有点烦。项目写的乱成团,改起需求真要完。此后当个加班狗,无钱无名心要宽。 昨晚写到十一点,我都差点不相信这是我自己了。 今天接着昨天的节奏来,准备写下关于Activity从创建到显示的整个过程。
959 0