📜  Android 中的活动别名以保留启动器

📅  最后修改于: 2022-05-13 01:56:11.976000             🧑  作者: Mango

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标签中使用了 。因此,每当我们启动应用程序时,都会启动PrevActivity 。现在,在您的设备上安装应用程序并在主屏幕上创建应用程序的快捷方式。创建快捷方式后,将 Launcher 活动更改为NewActivity 。因此,我们的AndroidManifest.xml文件的代码将更改为:

XML


    
    
    
        
            
 
            
        
    

现在,运行应用程序并尝试找到您在主屏幕上创建的快捷方式。您不会在主屏幕上找到任何快捷方式。

这背后的原因是什么?

每当我们在主屏幕上创建特定应用程序的快捷方式时,该快捷方式都会记住 Launcher Activity 的名称,即在我们的示例中名称是PrevActivity

XML


现在,如果您要更改 Launcher Activity 的名称,即我们的名称更改为:

XML


问题出现在这里,快捷方式的名称为PrevActivity但现在名称已更改为NewActivity并且它变得混乱并且快捷方式已从主屏幕中删除。

活动别名

所以,为了在主屏幕上保留快捷方式,即使在 Launcher Activity 名称发生变化之后,我们也使用了 Activity-Alias 的概念。 用于通过保留启动器来启动 Activity。因此,通过使用您可以更改启动器活动,并且快捷方式启动器也将保留在主屏幕上。但是如何使用这个 Activity-Alias 呢?只需在您的AndroidManifest.xml文件中使用以下代码:

XML




    
        
 
        
    

在这里,我们使用标签来声明我们的 Launcher Activity。每当启动应用程序时,就会启动PrevActivity ,因为android:targetActivity=”.PrevActivity”用于定义调用 Launcher 时的目标活动。

现在,在主屏幕上创建应用程序的快捷方式,然后将 Launcher Activity 更改为NewActivity并运行应用程序。现在,您可以看到更改 Launcher Activity 后,我们的快捷方式仍在主屏幕上。但这背后的原因是什么?

因此,在我们的例子中,当您创建应用程序的快捷方式时,名称将被记住,即在我们的例子中为“ MainActivity ”:

XML

android:name=".MainActivity"

因此,每当调用 Launcher 时,快捷方式都会搜索名称“ MainActivity ”,如果找到相同的名称,它将启动以下内容的 Activity:

XML

android:targetActivity=".PrevActivity"

因此,将目标活动更改为您的选择,并在中保持名称相同。现在,尝试更改中的名称并运行应用程序。您会发现同样的问题,即快捷方式将从屏幕中删除,因为名称已更改。

提供的其他功能

以下是提供的功能,除了保留启动器:

XML


    . . .

  1. android:enabled: android:enabled用于判断目标活动是否可以被系统实例化。如果不是,则该值将为,否则为真。默认情况下,Activity 和别名为true ,但为了启动 Activity,这两个值必须同时为true
  2. android:exported:用于判断targetedActivity是否可以被其他应用的组件启动。如果不是,则该值为false ,否则为true
  3. android:icon:它为使用别名呈现给用户的目标活动设置图标。
  4. android:label:当别名呈现给用户时,这个android:label用于为别名设置用户可读的文本。
  5. android:name:用于通过写一个完全分类的类名来唯一标识一个别名。
  6. android:permission:在这里,存在权限的名称,这是由别名启动目标活动所需的。
  7. android:targetActivity:用于指定要通过别名启动的Activity名称。

结论

我希望你在这个博客中学到了一些新东西。让我们回顾一下。在这篇博客中,我们学习了 的概念。 用于保存 Android 应用程序中的启动器。通过使用 ,我们可以更改 Launcher Activity,我们的应用程序快捷方式将保留在主屏幕上的相同位置。