【问题标题】:Launching app from HomeScreen (shortcut) and from App drawer, is not the same从 HomeScreen(快捷方式)和从应用程序抽屉启动应用程序是不一样的
【发布时间】:2015-02-23 16:31:11
【问题描述】:

我遇到了一个奇怪的行为。也许有人可以澄清一下。 当我从 GooglePlay 下载我的应用程序时,添加了 2 个图标。一个作为快捷方式进入主屏幕,另一个进入应用抽屉(我在设备上安装的所有不同应用的屏幕)。

现在是事件流程:

  1. 我从 GooglePlay 安装应用程序
  2. 安装完成后我启动应用程序,也从 GooglePlay 启动(有一个打开按钮)--> 这会启动应用程序,显示初始屏幕并转到我的主屏幕
  3. 我在我的应用中导航到另一个屏幕
  4. 我单击主页按钮转到主屏幕。

现在有趣的部分:

  1. 我按下 GooglePlay 为我创建的主屏幕快捷方式图标以返回我的应用程序 --> 这会将我带到与我所在的完全相同的屏幕。
  2. 我再次单击主页按钮以转到主屏幕。
  3. 这一次,我按下 App Drawer 快捷方式图标返回到我的应用 --> 这将再次显示初始屏幕并将我带到我的主屏幕。

这种情况经常发生。每个快捷方式启动到不同的状态(或屏幕)。 请注意,最近列表中只有一个应用程序。

另一方面。如果我自己创建主屏幕快捷方式,当我从两个图标启动应用程序时,我会得到相同的结果。 GooglePlay 为我创建的快捷方式有所不同。

有什么想法吗?

编辑 这是 AndroidManifest.xml 一些名称发生了变化。必须删除一些信息(与意图过滤器无关)..

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.xxxx.xxxxjh"
    android:installLocation="internalOnly">

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application
    tools:node="replace"
    android:name=".xxxxgggApplication"
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:hardwareAccelerated="true"
    android:theme="@style/AppTheme" >

    <activity
        android:name=".view.activities.StartupActivity"
        android:theme="@style/AppThemeNoBar"
        android:windojhoftInputMode="adjustResize|stateHidden">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".view.activities.WelcomeActivity"
        android:theme="@style/WelcomeActivityStyle"/>

    <activity
        android:name=".view.activities.AccountActivity"
        android:theme="@style/AppThemeNoBar"
        android:windojhoftInputMode="adjustResize|stateHidden"/>

    <activity
        android:name=".view.activities.UrlSchemeHandlerActivity"
        android:launchMode="singleInstance">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="xxxx" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="xxxx5.4" />
        </intent-filter>
    </activity>


    <activity
        android:name=".view.activities.FileManagerActivity"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        android:logo="@drawable/fm_drawer"
        android:theme="@style/AppThemeBar"
        android:windojhoftInputMode="adjustPan|stateHidden"/>

    <activity
        android:name=".view.activities.ViewerActivity"
        android:label="@string/launcher_activity_label"
        android:theme="@style/AppThemeNoBar"
        android:windojhoftInputMode="adjustResize|stateHidden"
        android:parentActivityName=".view.activities.FileManagerActivity" >
        <!-- The meta-data element is needed for versions lower than 4.1 -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".view.activities.FileManagerActivity" />
    </activity>

    <activity
        android:name=".view.activities.DemoActivity"
        android:label="@string/launcher_activity_label"
        android:theme="@style/WelcomeActivityStyle"
        android:windojhoftInputMode="adjustResize|stateHidden" />

    <activity
        android:name=".view.activities.ApplicationSettingsActivity"
        android:logo="@drawable/fm_drawer"
        android:label="@string/AG_Settings"
        android:windojhoftInputMode="adjustResize|stateHidden">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.xxxx.xxxxjh.view.activities.FileManagerActivity" />

    </activity>

    <activity
        android:name=".view.activities.WebViewActivity"
        android:logo="@drawable/fm_drawer"
        android:theme="@style/AppThemeBar" />

    <service android:name="com.xxxx.sdk.controller.service.account.AccountService" >
       <!-- Actions and meta data goes here... -->
    </service>
    <service android:name="com.xxxx.sdk.controller.service.storage.StorageService">
       <!-- Actions and meta data goes here... -->
    </service>
    <service android:name="com.xxxx.sdk.controller.service.designFeed.DesignFeedService">
       <!-- Actions and meta data goes here... -->
    </service>
    <service android:name="com.xxxx.sdk.controller.service.ConfigService">
      <!-- Actions and meta data goes here... -->
    </service>

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

</application>

【问题讨论】:

  • 这似乎与您在清单文件中设置的意图过滤器有关。如果您提供文件的内容,我会仔细查看。
  • 博士。谢谢你的时间。我更新了问题并提供了清单。我不得不重命名一些活动并删除一些信息,但这些信息与意图过滤器无关。感谢您的帮助!

标签: android


【解决方案1】:

很遗憾地告诉您,这不是您项目中的错误,而是 android 默认行为。我做了一些研究,最终出现在以下线程中。也许您可以过滤掉一些有用的信息,并在您的项目中测试这些方法。

App completely restarting when launched by icon press in launcher

Android application restarts when opened by clicking the application icon

问候。

【讨论】:

  • 啊,我明白了。非常感谢你的帮助。希望 Google 最终会修复此行为。
猜你喜欢
  • 2011-09-27
  • 1970-01-01
  • 2012-06-14
  • 2023-04-08
  • 1970-01-01
  • 2015-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多