我点击HOME按钮,程序最小化;但是当我按下应用程序图标时,程序会启动两次

时间:2012-05-22 15:34:00

标签: android android-activity launchmode

我有以下问题:

当我按下Android HOME键时,我可以看到“桌面”和我的应用程序图标。然后我按下我的应用程序图标,我的应用程序启动两次。我不想两次打开我的应用程序。

我的计划如何运作:

我有4项活动(A,B,C,D)。

A - 主要活动:它是第一个打开的。它会打开另一个有很多按钮的活动。它就像Java的main()方法。我显示了一个SplashScreen,我调用另一个Activity。然后我完成我的活动“A”。

B - 菜单屏幕:在此活动中,我有一些按钮,如菜单。我有一个配置按钮,更新按钮和登录按钮。当我单击登录按钮时,我完成此活动并打开登录屏幕(活动“C”)。

C - 登录屏幕:用户编写登录名和密码。如果登录成功,我将完成此活动并打开活动“D”。

D - 应用程序主屏幕:它始终保持打开状态并启动另一个活动。当我想要关闭我的申请时,我完成了这个。

P.S。:我尝试更改launchMode标志(androidManifest.xml),但没有用。

我的AndroidManifest.xml如下:

<application android:label="@string/app_name" android:icon="@drawable/icon" android:name="MyApplication">
    <activity android:name="A"
              android:label="@string/app_name"
              android:configChanges="orientation">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="br.com.site.B" android:label="@string/app_name" />
    <activity android:name="br.com.site.C" android:label="@string/app_name" />
    <activity android:name="br.com.site.D" android:label="@string/app_name" />
</application>

这是我的活动“A.java”来源:

public class A extends Activity {

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

        finish();
        startActivity(new Intent(this, AtualizaDadosFrame.class));
    }
}

我不想两次打开我的应用。

提前致谢!

3 个答案:

答案 0 :(得分:2)

我将假设您最初(第一次)从IDE(如Eclipse或IntelliJ)启动了应用程序。如果是这样,这是Android中的已知错误(请参阅http://code.google.com/p/android/issues/detail?id=26658)。很多人一直在努力追逐这个问题: - (

请不要更改launchMode。这不是解决此问题的正确方法。默认(标准)launchMode是大多数情况下都适用的。

编辑(添加了解决方法的链接):

可以在http://code.google.com/p/android/issues/detail?id=2373#c21

找到此问题的简单解决方法

答案 1 :(得分:0)

您应在AndroidManifest.xml中设置所需的launch mode

答案 2 :(得分:0)

你可以限制这..... 请点击以下链接。

Home key press behaviour