2014-03-26 21 views
0

我寫了一個自定義啓動器,它的工作原理相當不錯。啓動器有一些頁面充滿了應用程序。我想實現,代表頁碼的變量設置爲0,如果homebutton被按下。因此,如果您位於啓動器的其他頁面上並按住home按鈕,則會進入起始頁面。 我搜索了很多,但無法找到適合我的答案。 我已將應用程序設置爲清單中的啓動程序。在自定義啓動器中實現主頁按鈕

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

可以做到這一點嗎?只要改變一個變量的值,如果主頁按鈕被按下,並保持主頁按鈕的其餘部分,就這樣。

回答

0

對於每個想要做同樣事情的人。這就是我解決它的辦法: 添加以下的清單:

<activity 
    android:launchMode="singleTask" 
    android:clearTaskOnLaunch="true" 
    android:stateNotNeeded="true"> 

並寫到Java活動這樣的:

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    if (Intent.ACTION_MAIN.equals(intent.getAction())) { 
     final boolean alreadyOnHome = 
       ((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) 
         != Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); 
     if (alreadyOnHome) { 
      Log.d("whatever", "Home pressed"); 
     } 
    } 
} 

我是從這裏:CyanogenMod trebuchet