【问题标题】:Returning app from foreground - default activity is launched (release only)从前台返回应用程序 - 启动默认活动(仅限发布)
【发布时间】:2015-10-18 18:27:17
【问题描述】:

我遇到了一个非常奇怪的问题,它只出现在发布版本中。

我的应用程序实现了一个启动屏幕,它会在 1 秒延迟后自行清除并启动主要活动。初始屏幕在我的清单中使用 MAIN / LAUNCHER 意图过滤器声明。

调试应用程序时,一切正常(顺便说一下,我使用的是 Android Studio 1.3)。

但是,当我在发布版中启动应用程序时会发生以下情况:

  1. 启动应用,出现启动画面
  2. 1 秒后,闪屏结束并打开主 Activity - 到目前为止,一切顺利。
  3. 我点击主页按钮,应用程序进入后台
  4. 回调应用 - 启动画面已打开
  5. 1 秒后,闪屏被移除,主 Activity 以原始状态打开。

如果我杀死该应用程序并再次打开它,此错误会消失,并且在我重新安装该应用程序之前不会再次出现。

我查看了this 的帖子并在那里实施了解决方法,它似乎解决了问题,但我仍然非常担心这个错误,并且想知道最近是否有其他人看到类似的事情发生(帖子很旧,并且表明该问题可能与日食有关)。

编辑

这是我添加到初始屏幕活动的代码(来自上面链接的帖子):

public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

        if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0)
        {
            // call code which launches the main activity here
            finish();
            return;
        }

正如我所说,这个添加的代码消除了这个问题,但我试图理解为什么这个问题首先出现?为什么这只发生在发布版本中,为什么它只在第一次安装应用程序时发生,并且在应用程序被终止并重新启动后停止发生?

新活动打开时带有以下意图标志:FLAG_ACTIVITY_SINGLE_TOP & FLAG_ACTIVITY_CLEAR_TOP

这是我的清单的相关部分:

     <activity
        android:name="com.my.app.SplashScreenController"
        android:label="@string/app_name" 
        android:screenOrientation="portrait"
        android:theme="@style/LightTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

发布打开下一个活动的确切代码有点困难,因为我的应用程序逻辑有些复杂,并且打开的下一个活动很大程度上取决于变体和内部应用程序状态。

【问题讨论】:

  • 您能粘贴您的启动画面和清单代码吗?另外我想问一件事,你在从闪屏启动意图之前调用了finish()吗?
  • 我在启动下一个活动后立即在初始屏幕上调用finish()。

标签: android android-intent


【解决方案1】:

抱歉,由于缺乏声誉,我无法发表评论。 你能添加一些代码吗?就像当您调用主页时,当您关闭启动屏幕和您从发布的链接添加的代码时? 这将使回复更容易:)

编辑: 不管怎样,我找到了this 的帖子,根据它我认为你可以使用

@Override
protected void onPause()
{
    super.onPause();
    startActivity(getIntent().addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
}

希望它有所帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多