なぜ私のアプリケーションは私のデバイスに4回表示されるのですか?
-
27-09-2019 - |
質問
アプリケーションをデバイスまたはエミュレータにインストールすると、アプリメニューに複数回表示されます。私の場合、アプリケーション名を表示する4つのアイコンが表示されます。
各アイコンはアクティビティを表しているようです。私のアプリケーションには3つのタブ(アクティビティ付き)が含まれているため、メニューの最初の3つのアイコンは特定のアクティビティに移動し、4番目のアイコンはアプリ自体に連れて行ってくれます。
これは私のマニフェストです
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jameselsey"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:name="com.jameselsey.domain.GlobalState"
android:theme="@android:style/Theme.NoTitleBar">
<activity android:name=".DefaultActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MyContactsActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MyMapsActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".OptionsActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-library android:name="com.google.android.maps" />
</application>
</manifest>
4ではなく、デバイスにアプリに1つのアイコンしか持っていないために何ができますか?
ありがとう
解決
答えはすでに提供されていますが、私はそれを説明しているだけです。 Javaでは、アプリケーションは 主要 方法とそれは基本的にaになります 独身 アプリケーション全体へのエントリポイント。
Androidでは、アクティビティクラス内にメインメソッドがないことに気付くことができました。ここでは、マニフェストファイルを使用して同じことを行います。アプリケーションには複数のエントリポイントを持つことができます "android.intent.action.MAIN"
このアクティビティが主要な開始アクティビティであり、 LAUNCHER
カテゴリによれば、このエントリポイントはアプリケーションランチャーにリストされるべきであると述べています。アクティビティを作成したら LAUNCHER
Androidはアプリケーションのアイコンと名前を提供します。ケースの4つのアイコンのそれぞれをクリックすると、4つの異なるアクティビティが表示されることに気付いた必要があります。
一番下の行は、アプリケーションが複数のエントリポイントを必要としない場合、使用する必要がないことです。
他のヒント
4つのアクティビティがあるからです
` <intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
これにより、アクティビティにランチャーアイコンが追加されます。
削除する intent-filter
最後の3つのアクティビティから