gpt4 book ai didi

android - 恢复 Top Activity 而不是启动 Launcher Activity

转载 作者:IT王子 更新时间:2023-10-29 00:03:58 27 4
gpt4 key购买 nike

我的应用程序中有两个 Activity ,一个是启动器,另一个是作为第一个的显式调用启动的。

我的问题是,当我从第二个 Activity 按主页键返回主屏幕并启动应用程序时,即使第二个 Activity 已经在后台,第一个 Activity 也会再次启动。

编写第一个 Activity 以下载应用程序运行所需的 Assets ,一旦下载了 Assets ,它就会触发第二个 Activity 并为 self 调用完成。

下面是我的应用 list 。

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" />

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

<! Download the Required Assets if not found on SD Card -->
<activity android:name=".ContentDownload"
android:screenOrientation="landscape"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|locale"
android:launchMode="singleTask"
android:alwaysRetainTaskState="true">

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

<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

</activity>

<activity android:name=".ActualAppActivity"
android:screenOrientation="landscape"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|locale"
android:launchMode="singleTask"
android:alwaysRetainTaskState="true"
/>

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<supports-screens android:smallScreens="false" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true"/>

如果调用启动器并且它在后台,有人可以指导我如何使第二个 Activity 直接获得控制权而不是再次通过第一个 Activity 。

下面是我的 onResult 回调方法。

public void onResult(String assetPath, int result)
{
if(result == RESULT_OK)
{
startActivity(new Intent(this, ActualAppActivity.class));
activity.destroyDownloadActvity();
finish();
}
else
{
finish();
java.lang.System.exit(0);
}
activity.destroyDownloadActvity();
activity = null;
}

最佳答案

尝试在 Manifest 中指定为 Launcher Activity 的 Activity 的 onCreate 方法中使用以下代码,即问题中发布的原始代码中的 ContentDownload Activity :

if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
finish();
return;
}

这将通过检测到已经有一个任务正在运行,从而在显示之前完成您的 Launcher Activity,并且您的应用应该恢复到最后一个可见的 Activity。

请参阅 Android 文档中有关 Android list 启动模式的此页面:http://developer.android.com/reference/android/R.styleable.html#AndroidManifestActivity_launchMode

关于android - 恢复 Top Activity 而不是启动 Launcher Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11721619/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com