Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-如何在不删除快捷方式的情况下更改应用程序的入口点?_Android_Android Activity_Manifest_Launcher - Fatal编程技术网

Android-如何在不删除快捷方式的情况下更改应用程序的入口点?

Android-如何在不删除快捷方式的情况下更改应用程序的入口点?,android,android-activity,manifest,launcher,Android,Android Activity,Manifest,Launcher,因此,在我的应用程序的早期版本中,我有一个名为MainActivity的入口点 <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" />

因此,在我的应用程序的早期版本中,我有一个名为MainActivity的入口点

    <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>

在这个版本中,我为我的应用程序提供了一个新的入口点,然后以编程方式重新定向到MainActivity或另一个屏幕。以下是两项活动:

    <activity
        android:name=".NewEntryPoint"
        android:label="@string/title_activity_second" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

我从主活动中删除了action.MAIN,并将其设置为我的新入口点。但是,任何在主屏幕上将应用程序作为快捷方式的用户都将丢失该快捷方式。将启动器类别保留在MainActivity中也没有帮助

有没有办法在不删除快捷方式的情况下更改我的应用程序的入口点


谢谢

我相信你可以使用
活动别名
来实现这一点,但我想知道,为了避免用户再次向你的应用程序添加快捷方式,是否值得在将来进行维护。大概是这样的:

<activity-alias
    android:name=".MainActivity"
    android:targetActivity=".NewEntryPoint">

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

</activity-alias>

谢谢!但正如我所提到的,NewEntryPoint有一些逻辑,将再次导致MainActivity。产生一个永久的循环