2013-01-07 71 views
0

我已經建立了一個包含不同的套餐和活動的項目,說:讓家庭意圖採取特定的應用程序活動?

com.example.package1.Activity1 
com.example.package2.Activity2 

第一包擁有發射。我的項目清單文件這一活動是聽家裏的意圖:

 // Launcher 
     <activity android:name=".package1.Activity1" android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.HOME" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

     // package2.activity1 
     <activity android:name=".package2.activity1" android:label="@string/package2_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

我的問題是,當用戶點擊Home發射器沒有打開,而不是用戶被引導到應用程序的最後一個打開的活動。 EG: User opens package2.MainActivity from default launcher > goes to another app > clicks home > package2.MainActivity is opened again.

這是正常的嗎?如何確保設備Home按鈕對.package1.activity1?

+0

你的意思是設備「首頁」按鈕? – dd619

+0

是的,硬按鈕「家」。對不起,我將澄清問題 – lisovaccaro

+0

嗯!用戶從默認啓動程序打開package2.MainActivity>打開另一個應用程序?你的意思是另一項活動,還是你啓動了一個新的應用程序? –

回答

1

如果你想創建一個主屏幕更換,則該活動需要在它在<activity>標籤以下清單:

android:launchMode="singleInstance" 

這將確保只有一個該活動的實例永遠存在,當這個活動推出其他活動,他們都將進入新的任務,不是主屏幕更換的任務的一部分。

+0

謝謝,做了這個訣竅。但我必須將它添加到兩個活動中。 – lisovaccaro

0

我不知道,但請儘量此代碼:

// package2.activity1 
    <activity android:name=".package2.activity1" android:label="@string/package2_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.View" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
+0

我剛剛嘗試過,它似乎從主屏幕中刪除活動的圖標。 – lisovaccaro

+0

爲了讓您的應用程序顯示在可用應用程序列表中,您需要一個帶有'action.MAIN'和'category.LAUNCHER'的'intent-filter'。 –

相關問題