赞
踩
参考了网上很多方法,最后找到了这样一种方法,既可以隐藏launcher中App的图标,又可以通过隐式启动的方式启动起该App中的指定Activity,好了直接进入主题。
子app的工程名叫app:
AndroidManifest.xml中定义如下:
- <application
- android:allowBackup="true"
- android:icon="@mipmap/ic_launcher"
- android:label="@string/app_name"
- android:supportsRtl="true"
- android:theme="@style/AppTheme">
- <activity
- android:name=".MainActivity"
- android:label="@string/app_name"
- android:theme="@style/AppTheme.NoActionBar">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT"/>
- <category android:name="android.intent.category.LAUNCHER" />
- <data android:host="AuthActivity" android:scheme="com.example.hyy"></data>
-
- </intent-filter>
- </activity>
- </application>

主app的名叫host:
在点击button的时候进行跳转,使用隐式启动方式Uri.parse("com.example.hyy://AuthActivity"),唤起子app中的MainActivity,写法如下:
- public void onClick(View view) {
- Intent intent = new Intent();
-
- // ComponentName cn = new ComponentName("com.example.hyy.myapplication","com.example.hyy.myapplication.MainActivity");
- // intent.setComponent(cn);
- // intent.setAction("android.intent.action.MAIN");
-
- Uri data = Uri.parse("com.example.hyy://AuthActivity");
- intent.setData(data);
-
- try {
- startActivityForResult(intent, RESULT_OK);
- } catch (Exception e) {
- Toast.makeText(MainActivity.this, "没有该子APP,请下载安装",Toast.LENGTH_SHORT).show();
- }
- }

为什么加入这个之后app就不显示图标了呢?
因为我们把app的入口Activity申明为由接收隐士的Intent来启动,这样自然也就不会显示图标了。
如果需要显示图标的话而且也必须响应上述Uri的话,那么我们可以在该Activity中再加入一个intent-filter标签,将data元素移到新建的标签中。
这样应用既可以显示图标又可以响应特定的Uri了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。