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

时间:2012-02-16 07:27:39

标签: android android-intent intentfilter

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

4 个答案:

答案 0 :(得分:3)

每个导出的活动都是您应用的潜在入口点;外国应用程序可以有意图启动它们中的任何一个。 (一个intent-filter带有一个隐含的android:export。)但是你只能有一个启动器会尊重的入口点。要模拟第二个发射点,要么

  1. 提供一个完全独立的应用程序,以启动您的某个导出活动,或

  2. 根据某些逻辑(保存的偏好,月相计算,任何事情),将“启动”活动的唯一目的是立即启动一项或另一项活动。

答案 1 :(得分:1)

我认为您正在谈论基于某些事件启动活动决策,然后您需要添加广播接收器,例如,如果您要启动Activity1,请单击启动器上的应用程序图标。然后在此活动Action_MAIN和ACTION_LAUNCHER中添加意图过滤器,如果要在手机启动时启动Activity2,则在此活动中添加过滤器BOOT_COMPLETED。

答案 2 :(得分:1)

检查下面的这个

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);

答案 3 :(得分:0)

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

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);