【发布时间】:2012-02-16 07:27:39
【问题描述】:
是否可以在 Android 中为应用程序创建两个入口点,我的意思是我可以通过编程方式切换主活动吗?
【问题讨论】:
-
这与有一个入口点决定做两种可能的事情之一有什么不同?
标签: android android-intent intentfilter
是否可以在 Android 中为应用程序创建两个入口点,我的意思是我可以通过编程方式切换主活动吗?
【问题讨论】:
标签: android android-intent intentfilter
每个导出的活动都是您应用的潜在入口点;一个外国应用程序可以有意图地启动它们中的任何一个。 (意图过滤器带有一个隐式的 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);
【讨论】:
我认为您正在谈论基于某些事件的启动活动决策,那么您需要添加一个广播接收器,例如如果您想启动 Activity1,请单击启动器上的应用程序图标。然后将意图过滤器添加到此活动 Action_MAIN 和 ACTION_LAUNCHER,如果您想在手机启动时启动 Activity2,则将过滤器添加到此活动,BOOT_COMPLETED。
【讨论】:
如果您正在谈论从您的应用启动其他应用,那么这可以是代码:
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);
【讨论】: