如何以编程方式更改Android中的主要活动

如何以编程方式更改Android中的主要活动,android,android-intent,intentfilter,Android,Android Intent,Intentfilter,是否可以在Android中为一个应用程序创建两个入口点,我的意思是我可以通过编程方式切换主要活动吗?如果您正在谈论从您的应用程序启动其他应用程序,那么以下代码可能是: Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setComponent(new ComponentName(packageName,mainActivity)); intent

是否可以在Android中为一个应用程序创建两个入口点,我的意思是我可以通过编程方式切换主要活动吗?

如果您正在谈论从您的应用程序启动其他应用程序,那么以下代码可能是:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setComponent(new ComponentName(packageName,mainActivity));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(intent);

我想你们说的是基于一些事件的启动活动决策,然后你们需要添加一个广播接收器,比如若你们想启动活动1,点击启动器上的应用图标。然后将意向筛选器添加到此活动Action_MAIN和Action_LAUNCHER,如果您想在手机启动时启动Activity2,则将筛选器添加到此活动,启动已完成。

每个导出的活动都是应用程序的潜在入口点;外国应用程序可以启动其中任何一个。(一个意图过滤器附带了一个隐式的android:export。)但是,您只能有一个启动器将遵守的入口点。要模拟第二个发射点

  • 提供一个完全独立的应用程序,用于启动导出的活动之一,或

  • 让你的“启动”活动的唯一目的是根据某种逻辑立即启动一项或另一项活动(保存的首选项、月球计算阶段,任何事情)

  • 检查下面的这个

    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    intent.setComponent(new ComponentName(packageName,mainActivity));
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    ctx.startActivity(intent);
    

    这与仅仅决定做两件事情中的一件不同吗?