`

android activity-alias 做多入口程序(多个launch icon)

 
阅读更多
代码
<activity
            android:name=".IconOne"
            android:icon="@drawable/ic_launcher"
            android:label="icon1"
            android:launchMode="singleTask"
            android:clearTaskOnLaunch="true"
            android:screenOrientation="nosensor" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        <activity-alias
            android:name="combine"
            android:label="icon2"
            android:targetActivity=".IconOne" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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


protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_icon_one);
		Log.d("debug", "onCreate" +  getIntent().getComponent().getClassName());
	}
	
	@Override
	protected void onNewIntent(Intent intent) {
		// TODO Auto-generated method stub
		super.onNewIntent(intent);
		setIntent(intent);
		Log.d("debug", "onNewIntent" +  intent.getComponent().getClassName());
	}


这里使用activity-alias实现多个launch一起进入了IconOne.
需要注意的是:
1. IconOne中需要使用
            android:launchMode="singleTask"
            android:clearTaskOnLaunch="true"
   否则, 下一次按Home退出后,按另一个icon进入就不会调用onNewIntent();
2. onNewIntent中注意setIntent否则getIntent()会是之前的intent.
分享到:
评论

相关推荐

    android 8.1设置添加Ethernet功能选项patch文件

    + &lt;activity-alias android:name=".EthernetSettings" + android:label="@string/ethernet_settings" + android:clearTaskOnLaunch="true" + android:targetActivity="Settings$EthernetSettingsActivity" + android...

    inline-activity-result,在回调中内联接收活动结果,不带任何样板文件。.zip

    1. Lambda表达式支持:对于Java开发者,"inline-activity-result"提供了一个`ActivityResultLauncher`接口,可以通过lambda表达式直接指定结果处理逻辑。例如: ```java ActivityResultLauncher&lt;Integer&gt; launcher ...

    Android的Activity的Launch模式之Standard案例

    在提供的"Activity_Launch_Standard"案例中,开发者可能创建了一个或多个人启动Activity的场景,每个启动都使用Standard模式。运行应用,可以观察到每次点击按钮启动Activity时,系统都会创建新的Activity实例,这...

    Android开发指南中文版-----应用程序框架

    在Android开发中,应用程序的基础架构包括以下几个核心部分: ##### 关键类 Android应用的核心是几个关键类: 1. **Activity**:负责处理用户交互并展示UI。 2. **Service**:在后台运行长时间的操作,而无需用户...

    Android-AndroidKTX-用于开发Android应用程序的一套Kotlin扩展

    Android KTX是一个官方推出的库,专门为了简化Android应用开发而设计,它为Android SDK和Jetpack组件提供了一套丰富的Kotlin扩展函数。这个库的目标是让使用Kotlin编写Android代码更加流畅、简洁,提高开发效率,...

    获取app版本_包名_入口Activity

    在Android开发中,获取应用程序的包名、入口Activity和版本信息是常见的需求,这对于调试、统计分析或权限管理等场景非常关键。以下是对这个"获取app版本_包名_入口Activity"主题的详细解释。 首先,我们要理解这些...

    Android代码-kotlinx.coroutines

    GlobalScope.launch { delay(1000) println("Hello from Kotlin Coroutines!") } Modules common — common coroutines across all platforms: launch and async coroutine builders; Job and Defer

    Android Activity设置相同的action进行判断源码.rar

    在Android应用开发中,Activity是应用程序的基本组件,用于与用户交互。当多个Activity具有相同的Intent Action时,系统需要根据特定规则来决定启动哪个Activity。这个过程涉及到Android的Intent解析机制和Activity...

    Android的Activity的Launch模式之SingleInstance案例

    `SingleInstance`模式,顾名思义,就是在应用程序中只有一个该Activity的实例,并且这个实例存在于一个独立的任务栈中。这意味着,无论从哪个应用或者Activity启动这个`SingleInstance`模式的Activity,都会进入同一...

    Android的Activity的Launch模式之SingleTask案例

    Activity的启动模式(Launch Mode)是Android系统管理Activity实例的重要机制,它可以决定如何创建和管理Activity的生命周期。本篇文章将深入探讨`SingleTask`启动模式,并通过实际案例源码进行解析。 `SingleTask`...

    Android代码-ForceStopGB

    Android 3.1 introduces Launch controls on stopped applications. However, there are no such features on android 2.3, some 4.X devices didn't implement it well. Furthermore, there are some way for apps ...

    H5网页跳转小程序之微信开放标签、wx-open-launch-weapp按钮不显示、noPermissionJsApi

    2.要点:跳转小程序:wx-open-launch-weapp 用于页面中提供一个可跳转指定小程序的按钮。使用此标签后,用户需在网页内点击标签按钮方可跳转小程序; 3、确保你的网页中引入了微信提供的JavaScript SDK,一定要是...

    Android代码-Android页面启动速度优化:在页面打开之前就预加载数据

    PreLoader: Make your activity launch faster changelog 中文文档 Pre-load data before Activity opens, and display data on UI after UI initialization. Speedup Activity launch You can start a PreLoader...

    Android学习笔记-Activity篇

    在Android开发中,Activity是应用程序的基本构建块,它代表了一个用户可以交互的屏幕。这篇学习笔记将深入探讨Activity的相关知识,包括创建、声明、启动、关闭以及生命周期管理,同时还会涉及Task和Back Stack的...

    实现androidActivity的跳转,数据返回,传数据

    在Android应用开发中,Activity是构成应用程序的基本单元,它负责用户界面的展示和交互。Activity间的跳转和数据传递是Android开发中的常见操作,对于构建功能丰富的应用至关重要。本篇文章将详细阐述如何在Android...

    android activity研究

    - **Application**:一个完整的 Android 应用程序由一个或多个松耦合的 `Activity` 组成,它们共同实现应用程序的功能。 - **安装**:每个应用程序被打包成一个 `.apk` 文件进行分发。 - **Launcher**:安装后的应用...

    Android的Activity的Launch模式之SingleTop案例

    在`SingleTop`模式下,如果你尝试启动一个已经位于任务栈顶部的Activity,Android系统不会创建新的Activity实例,而是将Intent传递给已存在的实例。这对于那些只需要一个实例,并且希望处理多个Intent的情况非常有用...

    Android代码-安卓热修复框架

    It supports swapping new implementations of classes without restarting a running Android application, and updated Android resources (icons, layout, etc) while only restarting the Android Activity. ...

    Android代码-PullToRefresh

    PullLaunchRocket ...We use Launch-Rocket as our default style. And also, we provided a custom refresh style - sunrise Attention : version 1.0.2 is just a pre-release. Usage You can have a look

    icon launchImage 剪裁工具

    "icon launchImage 剪裁工具"简化了这个过程,允许开发者上传一个源图,自动裁剪出所有必要的尺寸。 1. **图标尺寸**:常见的图标尺寸包括App Store图标(1024x1024像素),iPhone主屏幕图标(180x180像素,针对...

Global site tag (gtag.js) - Google Analytics