Java 为什么不是';t主活动和启动器活动没有首先启动?

Java 为什么不是';t主活动和启动器活动没有首先启动?,java,android,xml,Java,Android,Xml,我有两个活动,“飞溅”和“起点”。我的XML明确指出,“Splash”是MAIN和LAUNCHER的活动,但是在运行应用程序时,“StartingPoint”似乎总是第一个运行的东西。我怎样才能修好它 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.commer.commest"

我有两个活动,“飞溅”和“起点”。我的XML明确指出,“Splash”是MAIN和LAUNCHER的活动,但是在运行应用程序时,“StartingPoint”似乎总是第一个运行的东西。我怎样才能修好它

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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity android:name="com.commer.commest.Splash" 
                  android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.commer.commest.StartingPoint" 
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="com.commer.commest.STARTINGPOINT" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

</manifest>

更新如下:

<activity android:name="com.commer.commest.StartingPoint" 
                  android:label="@string/app_name">
        </activity>

而不是

<activity android:name="com.commer.commest.StartingPoint" 
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="com.commer.commest.STARTINGPOINT" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>


拆下这些线。你的问题解决了

实际上,您将此应用程序作为默认启动器应用程序,而无需编写它


享受

您可以尝试将活动android:name更改为.Splash only,以及更改为您的起点吗

<activity android:name=".Splash"

<activity android:name=".StartingPoint"

您应该更改以下内容:

   <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity android:name="com.commer.commest.Splash" 
              android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name="com.commer.commest.StartingPoint"/> 


</application>

您在
com.commer.commest.STARTINGPOINT
活动中添加了默认类别,这就是您面临此问题的原因。从活动com.commer.commest.STARTINGPOINT中删除意图过滤器。为什么要在此处添加默认类别?如果你想知道默认类别的用法,请点击链接

简言之,如果将CATEGORY_DEFAULT添加到活动中,它将成为应用程序上下文的默认活动。因此,无论何时调用
Context.startActivity()
,都会声明您的默认活动


享受编码

顾名思义,默认类别(意图过滤器)用于将某些操作声明为默认操作。例如,如果您希望在打开应用程序时打开特定活动。您可以在清单中实现这一点:

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

尝试从包名为“com.commer.commest.StartingPoint”的代码中删除意图过滤器。像这样:

<activity android:name="com.commer.commest.StartingPoint" 
          android:label="@string/app_name">
</activity>

您应该按照以下线程的建议检查运行配置:

我有完全相同的问题,也尝试了这里建议的一切,但没有运气。 日食本身是最痛苦的…

面临着类似的问题,
就我而言,罪魁祸首是

android:launchMode=“singleInstance”

每次启动时,我都必须从Splash中删除它

    <activity
        android:name=".features.splash.SplashActivity"
        android:launchMode="singleInstance"  // had to remove this
        android:screenOrientation="portrait"
        android:theme="@style/SplashTheme"
        android:windowSoftInputMode="stateHidden">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <activity
        android:name=".features.login.LoginActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="stateHidden" />

花费时间后,在配置级别发现问题

您可以通过进入“编辑配置”菜单(点击“Shift”三次,键入“编辑配置”),然后将启动选项>启动更改为“无”,让Android Studio不会抱怨


我可能会添加一个包含说明的通用活动。

我做了更改并删除了元素,但“StartingPoint”活动仍然首先运行。ActivityManager:Starting:Intent{act=android.Intent.action.MAIN cat=[android.Intent.category.LAUNCHER]cmp=com.commer.commest/.StartingPoint}是的,当我完全删除StartingPoint活动时,飞溅成为第一个活动,但当我把它放回去时,它又回到了它原来的样子你用过这个吗?是的,我也试过了,StartingPoint活动一直是第一个出现的活动嘿Piyus,我意识到我的错误。。。我已将avd的运行配置设置为StartingPoint活动!对不起,我给你带来了这么多困惑。我感谢你和这里的每一个人提供的所有帮助!刚尝试过,“StartingPoint”是我在删除单个实例后尝试的第一个启动活动,但它不起作用
    <activity
        android:name=".features.splash.SplashActivity"
        android:launchMode="singleInstance"  // had to remove this
        android:screenOrientation="portrait"
        android:theme="@style/SplashTheme"
        android:windowSoftInputMode="stateHidden">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <activity
        android:name=".features.login.LoginActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="stateHidden" />