今天公司给了一个需求,只有一个activity,如何在launcher上显示多个图标,并且点金不同的图标进入不同的fragment
在配置文件中如下添加即可
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.zhouyuchen.myapplication"> <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"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity-alias android:name="Second" android:icon="@mipmap/ic_launcher" android:targetActivity=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity-alias> <activity-alias android:name="Three" android:icon="@drawable/aaa" android:targetActivity=".MainActivity" android:label="第三個"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity-alias> </application> </manifest>
如何在代码中进行获取呢
按以下代码操作即可
String MyName = getIntent().getComponent().getClassName(); String First = "com.example.zhouyuchen.myapplication.MainActivity";
下午的时候遇到了新问题 因为只有一个activity,所以导致按home键回到主界面的时候,activity没有被销毁,所以无法再次在执行oncreate()里的方法,点击另外的图标进入的还是原来的fragment。
解决办法为
因为只有一个activity,所以在配置文件中添加
android:launchMode="singleTask"在java文件中添加onnewintent方法即可
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); Log.i("new", "newIntent"); setIntent(intent); String s = getIntent().getComponent().getClassName(); if (s.equals(PACKAGE_NAME1)) { Log.i("aaa", "success"); textView1.setText("oneeee"); } if (s.equals(PACKAGE_NAME2)) { textView2.setText("twoooooooo"); } if (s.equals(PACKAGE_NAME3)) { textView3.setText("threeeeeeeeee"); } }