【问题标题】:Launcher Activity is opening twice in my new SDKLauncher Activity 在我的新 SDK 中打开了两次
【发布时间】:2014-11-19 06:46:30
【问题描述】:

我最近在 eclipse 和 android studio 中创建新的 android 应用程序时遇到了一个问题。 我在 eclipse 和 android studio 中使用相同的 SDK。

当我创建一个新应用程序并运行它时。启动器活动被加载了两次。 意思是,我让 MainActivity 在另一个之上加载两次。 我的 MainActivity 的 OnCreate() 方法也被调用了两次。

代码如下

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sample"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="21"
    android:targetSdkVersion="22" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

MainActivity.java

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    System.out.println("OnCreate Invoked");
}
}

输出

OnCreate Invoked
OnCreate Invoked

你能帮我解决这个问题吗? 提前致谢。

【问题讨论】:

  • 请在此处发布您的代码,以便人们帮助您解决问题。
  • 谢谢。普拉特发布
  • 您是从其他地方调用 MainActivity 还是仅作为 Launcher 调用?
  • 这是当您根本不旋转设备并保持在一个方向时?
  • 在你的targetSdkVersion22对应的是哪个Android版本?

标签: android eclipse android-studio adt android-sdk-2.3


【解决方案1】:

您的第一个活动似乎获得了多个实例。

在第一个活动的清单中使用它:

android:launchMode="singleTop"

【讨论】:

    【解决方案2】:

    如果我在 onCreate 中以编程方式设置方向 - 我可以重现此问题。

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
    

    如果需要,像这样在清单文件中设置活动方向。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 2013-05-18
      • 2012-12-18
      • 1970-01-01
      • 2017-09-18
      • 2021-06-17
      • 2020-06-18
      相关资源
      最近更新 更多