【问题标题】:Android - How to change entry point of App without removing shortcuts?Android - 如何在不删除快捷方式的情况下更改应用程序的入口点?
【发布时间】:2014-12-18 13:39:52
【问题描述】:

因此,在我的应用程序的先前版本中,我有一个名为 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 并将其设置为我的 NewEntryPoint。但是,任何将应用程序作为其主屏幕上的快捷方式的用户都将丢失该快捷方式。在 MainActivity 中保留 Launcher 类别也无济于事。

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

谢谢!

【问题讨论】:

    标签: android android-activity manifest launcher


    【解决方案1】:

    我相信您可以为此使用activity-alias,但我会质疑是否值得未来维护,以避免用户再次向您的应用添加快捷方式。像这样的:

    <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。导致永久循环
    猜你喜欢
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    相关资源
    最近更新 更多