Java 是否将home intent应用于特定的应用程序活动?
我构建了一个包含不同包和活动的项目,比如:Java 是否将home intent应用于特定的应用程序活动?,java,android,android-intent,android-launcher,Java,Android,Android Intent,Android Launcher,我构建了一个包含不同包和活动的项目,比如: com.example.package1.Activity1 com.example.package2.Activity2 第一个包包含一个启动器。在我的项目清单文件中,此活动正在侦听主意图: // Launcher <activity android:name=".package1.Activity1" android:label="@string/app_name" > <
com.example.package1.Activity1
com.example.package2.Activity2
第一个包包含一个启动器。在我的项目清单文件中,此活动正在侦听主意图:
// Launcher
<activity android:name=".package1.Activity1" android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
// package2.activity1
<activity android:name=".package2.activity1" android:label="@string/package2_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
//启动器
//package2.activity1
我的问题是,当用户单击Home
时,启动程序没有打开,而是将用户带到应用程序最后打开的活动<代码>例如:用户从默认启动器打开package2.main活动>转到另一个应用程序>单击主页>package2.main活动再次打开。
这正常吗?如何确保设备
Home
按钮进入.package1.activity1?我不确定,但请尝试输入以下代码:
// package2.activity1
<activity android:name=".package2.activity1" android:label="@string/package2_name" >
<intent-filter>
<action android:name="android.intent.action.View" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
//package2.activity1
如果您试图创建主屏幕替换,则该活动需要在清单中的
标记中包含以下内容:
android:launchMode="singleInstance"
这将确保此活动仅存在一个实例,并且当此活动启动其他活动时,它们将全部进入新任务,而不是主屏幕更换任务的一部分。您是指设备“主页”按钮吗?是的,硬按钮“主页”。对不起,我会澄清这个问题的!用户从默认启动器打开package2.main活动>打开另一个应用程序?你是指另一项活动还是正在启动新的应用程序?对不起,我刚刚发布了一个错误的答案。我的意思是实际启动另一个应用程序(用户导航离开我的应用程序,然后单击“主页”按钮),这只是出于测试目的,因为如果用户不先移动到另一个应用程序,主页意图不会起任何作用。我清楚了吗,还是我把事情弄得更糊涂了?我刚刚试过,它似乎从主屏幕上删除了活动的图标。你需要一个带有
action.MAIN
和category.LAUNCHER的意图过滤器,以便让你的应用程序显示在可用应用程序列表中。谢谢,这就是诀窍。不过,我不得不将其添加到这两项活动中。