java - 让家庭 Intent 转向特定的应用程序 Activity ?

标签 java android android-intent android-launcher

我构建了一个包含不同包和 Activity 的项目,例如:

com.example.package1.Activity1
com.example.package2.Activity2

第一个包包含一个启动器。在我的项目 list 文件中,此 Activity 正在监听 home Intent :

        // 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>

我的问题是,当用户单击Home时,启动器不会打开,而是将用户带到应用程序的最后打开的 Activity 。 EG:用户从默认启动器打开 package2.MainActivity > 转到另一个应用 > 单击主页 > package2.MainActivity 再次打开。

这正常吗?如何确保设备 Home 按钮指向 .package1.activity1?

最佳答案

如果您尝试创建主屏幕替代品,则该 Activity 的 <activity> 中需要包含以下内容 list 中的标记:

android:launchMode="singleInstance"

这将确保该 Activity 只存在一个实例,并且当该 Activity 启动其他 Activity 时,它们都将进入新任务,而不是主屏幕替换任务的一部分。

关于java - 让家庭 Intent 转向特定的应用程序 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14190254/

相关文章:

java - 使用 Gradle 更改源文件时运行单元测试的子集

android - 使用声明为 "intent.extras"对象的空变量初始化 "Bundle"

java - 在 Java8 中使用时区格式化 LocalDateTime

Java服务架构

android - 将 CoordinatorLayout 与 SwipeRefreshLayout 以及 RecyclerView 和 FloatingActionButton 一起使用

android - BroadcastReceiver 每次启动服务时接收

android - 使用 Gradle 将应用程序模块依赖项添加到 Android Studio 中的另一个应用程序模块中

java - Android 新 Activity 未启动

android - LocationClient requestLocationUpdates 与 PendingIntent

java - 为什么我的冒泡排序对反转数据的排序速度远快于随机数据或具有多个相同值的数据?