Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否将home intent应用于特定的应用程序活动?_Java_Android_Android Intent_Android Launcher - Fatal编程技术网

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的
意图过滤器,以便让你的应用程序显示在可用应用程序列表中。谢谢,这就是诀窍。不过,我不得不将其添加到这两项活动中。