2010-10-30 50 views
5

Khi tôi cài đặt ứng dụng của mình lên thiết bị hoặc trình giả lập, nó xuất hiện nhiều lần trong menu ứng dụng, trong trường hợp của tôi, tôi nhận được 4 biểu tượng hiển thị tên ứng dụng của mình.Tại sao đơn đăng ký của tôi xuất hiện 4 lần trên thiết bị của tôi?

Có vẻ như mỗi biểu tượng đại diện cho một hoạt động và vì ứng dụng của tôi chứa 3 tab (có hoạt động), 3 biểu tượng đầu tiên trên menu của tôi chuyển đến một hoạt động cụ thể và biểu tượng thứ 4 sẽ đưa tôi đến ứng dụng

Đây là biểu hiện của tôi

<?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> 

Những gì tôi có thể làm để chỉ có một biểu tượng cho ứng dụng của tôi trên điện thoại của tôi và không 4?

Cảm ơn

Trả lời

6

Câu trả lời đã được cung cấp nhưng tôi chỉ giới thiệu nó. Trong Java, ứng dụng sẽ bắt đầu với lớp chứa phương thức chính chính và về cơ bản sẽ là một điểm nhập duy nhất cho toàn bộ ứng dụng.

Trong Android, bạn có thể nhận thấy rằng không có phương pháp chính bên trong lớp Hoạt động của bạn. Ở đây chúng tôi sử dụng tệp kê khai để thực hiện tương tự. Ứng dụng có thể có nhiều điểm nhập và "android.intent.action.MAIN" cho biết hoạt động này phải là hoạt động bắt đầu chính và danh mục LAUNCHER cho biết rằng điểm nhập này sẽ được liệt kê trong trình chạy ứng dụng. Khi bạn tạo một hoạt động dưới dạng LAUNCHER android cung cấp biểu tượng và tên ứng dụng cho nó và bạn phải nhận thấy rằng việc nhấp vào từng biểu tượng trong 4 trường hợp của bạn sẽ đưa bạn đến 4 hoạt động khác nhau.

Điểm mấu chốt là nếu ứng dụng của chúng tôi không yêu cầu nhiều điểm vào, bạn không phải sử dụng nó.

+0

Câu trả lời mô tả nhất, nhưng +1 cho mọi người khác là aswel. Cảm ơn :) – Jimmy

10

Bởi vì bạn có 4 hoạt động với

`   <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 

Đó thêm một biểu tượng phóng cho hoạt động của bạn.

+0

Cảm ơn bạn điều này đã giúp tôi rất nhiều !! –

5

xóa intent-filter khỏi 3 hoạt động gần đây nhất

Các vấn đề liên quan