Android 中的活动别名以保留启动器
在继续讨论该主题之前,请拿起您的手机并数一数您设备上的应用程序数量。你们所有人平均必须有超过 30 份申请。但在这 30 个应用程序中,我们只定期使用 5-6 个应用程序。其他应用程序很少使用,但很重要。因此,我们所做的是,在我们的主屏幕或手机的主屏幕上创建常用应用程序的快捷方式。这些启动器用于启动该特定应用程序的启动器活动。坚持,稍等!那么,在本篇博客中,我们将学习如何在主屏幕上为应用程序创建快捷方式?没办法,我们都非常清楚。因此,每当我们从快捷方式启动移动应用程序时,都会调用 Launcher Activity。快捷方式的职责是保留或存储您的启动器,每当您启动应用程序时,快捷方式将为您启动启动器或只是 MainActivity。但是,当您更改应用程序的 Launcher Activity 时,情况会变得更加棘手。因此,请尝试更改应用程序的 Launcher Activity 并在您的设备上运行该应用程序。您还在主屏幕上找到快捷方式吗?嘿,刚刚发生了什么?捷径去哪儿了?别担心,在这篇博客的最后,你会知道所有这些问题的答案。因此,在本篇博客中,我们将了解Android 中的 Activity Alias 。让我们开始吧。
在前进之前
我们已经看到,如果我们更改应用程序的 Launcher Activity,那么应用程序在主屏幕上的快捷方式将会丢失。但是,为什么有人要更改 Launcher Activity?原因很简单,每当您对应用程序进行新的更新时,可能会出现由于某些新功能而必须更改 Launcher Activity 的情况,或者可能会出现更改包名称和相应的包名的情况活动名称。因此,在这种情况下,您的 Launcher Activity 的名称也会更改,而内容保持不变。 \
让我们做一个项目来更好地理解问题。在 Android Studio 中创建一个项目并将您的MainActivity命名为PrevActivity (您也可以使用其他名称)。以下是我的activity_prev.xml文件的代码:
XML
XML
XML
XML
XML
XML
XML
XML
android:name=".MainActivity"
XML
android:targetActivity=".PrevActivity"
XML
. . .
我们不需要为PrevActivity.kt文件添加任何代码。现在创建另一个活动名称为NewActivity的活动。 activity_new.xml的代码是:
XML
我们还没有在NewActivity.kt文件中编写任何代码。现在,打开AndroidManifest.xml文件。以下代码将在那里:
XML
在这里,我们的PrevActivity是 Launcher 活动,因为我们在PrevActivity标签中使用了
XML
现在,运行应用程序并尝试找到您在主屏幕上创建的快捷方式。您不会在主屏幕上找到任何快捷方式。
这背后的原因是什么?
每当我们在主屏幕上创建特定应用程序的快捷方式时,该快捷方式都会记住 Launcher Activity 的名称,即在我们的示例中名称是PrevActivity :
XML
现在,如果您要更改 Launcher Activity 的名称,即我们的名称更改为:
XML
问题出现在这里,快捷方式的名称为PrevActivity但现在名称已更改为NewActivity并且它变得混乱并且快捷方式已从主屏幕中删除。
活动别名
所以,为了在主屏幕上保留快捷方式,即使在 Launcher Activity 名称发生变化之后,我们也使用了 Activity-Alias 的概念。
XML
在这里,我们使用
现在,在主屏幕上创建应用程序的快捷方式,然后将 Launcher Activity 更改为NewActivity并运行应用程序。现在,您可以看到更改 Launcher Activity 后,我们的快捷方式仍在主屏幕上。但这背后的原因是什么?
因此,在我们的例子中,当您创建应用程序的快捷方式时,名称将被记住,即在我们的例子中为“ MainActivity ”:
XML
android:name=".MainActivity"
因此,每当调用 Launcher 时,快捷方式都会搜索名称“ MainActivity ”,如果找到相同的名称,它将启动以下内容的 Activity:
XML
android:targetActivity=".PrevActivity"
因此,将目标活动更改为您的选择,并在
Note: In order to use
提供的其他功能
以下是
XML
. . .
- android:enabled: android:enabled用于判断目标活动是否可以被系统实例化。如果不是,则该值将为假,否则为真。默认情况下,Activity 和别名为true ,但为了启动 Activity,这两个值必须同时为true 。
- android:exported:用于判断targetedActivity是否可以被其他应用的组件启动。如果不是,则该值为false ,否则为true 。
- android:icon:它为使用别名呈现给用户的目标活动设置图标。
- android:label:当别名呈现给用户时,这个android:label用于为别名设置用户可读的文本。
- android:name:用于通过写一个完全分类的类名来唯一标识一个别名。
- android:permission:在这里,存在权限的名称,这是由别名启动目标活动所需的。
- android:targetActivity:用于指定要通过别名启动的Activity名称。
结论
我希望你在这个博客中学到了一些新东西。让我们回顾一下。在这篇博客中,我们学习了