【问题标题】:Make home intent take to specific application activity?让家庭意图带入特定的应用程序活动?
【发布时间】:2013-01-07 05:14:05
【问题描述】:

我已经构建了一个包含不同包和活动的项目,例如:

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>

我的问题是当用户点击Home 时,启动器没有打开,而是用户被带到应用程序的最后一个打开的活动。 EG: User opens package2.MainActivity from default launcher &gt; goes to another app &gt; clicks home &gt; package2.MainActivity is opened again.

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

【问题讨论】:

  • 你的意思是设备的“主页”按钮吗?
  • 是的,硬按钮“home”。对不起,我会澄清这个问题
  • 嗯!用户从默认启动器打开 package2.MainActivity > 打开另一个应用程序?您是指其他活动还是要启动新应用程序?
  • 对不起,我刚刚发布了一个错误的答案。我的意思是实际启动另一个应用程序(用户离开我的应用程序,然后单击主页按钮),这只是为了测试目的,因为如果用户没有先移动到另一个应用程序,主页意图不会做任何事情。我是不是很清楚,还是我让事情变得更加混乱?

标签: java android android-intent android-launcher


【解决方案1】:

如果您尝试创建主屏幕替换,则该活动需要在清单中的 &lt;activity&gt; 标记中包含以下内容:

android:launchMode="singleInstance"

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

【讨论】:

  • 谢谢,成功了。不过,我不得不将它添加到这两个活动中。
【解决方案2】:

我不确定,但请尝试以下代码:

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

【讨论】:

  • 我刚试过,似乎它从主屏幕上删除了活动的图标。
  • 您需要 intent-filteraction.MAINcategory.LAUNCHER 才能让您的应用程序显示在可用应用程序列表中。
猜你喜欢
  • 2018-08-01
  • 1970-01-01
  • 2013-03-06
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
相关资源
最近更新 更多