2013-01-22 60 views
0

我試圖從服務啓動主屏幕啓動主屏幕。我用下面的代碼的Android:在Android 4.0的

  Intent startMain = new Intent(Intent.ACTION_MAIN); 
      startMain.addCategory(Intent.CATEGORY_LAUNCHER); 
      startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(startMain); 

它採用的是Android 2.3工作正常,但不是在4.0

在4.0中顯示一個列表來選擇應該是一個默認屏幕。

我需要同樣的效果,因爲我們可以在2.3

感謝得到提前

回答

0

你可以試試這個加看看它是否工作。

,而不是這個範疇,startMain.addCategory(Intent.CATEGORY_LAUNCHER);

試試這個,

startMain.addCategory(Intent.CATEGORY_HOME); 
+1

感謝ü先生它的工作:)我會在幾分鐘內檢查這個答案 – Sudarshan

+0

沒問題..歡迎我的朋友:) –

0

主屏幕可以從你的清單被觸發。 開始你的活動,你想有作爲主屏幕就像下面的:如果你想毫秒的量後,切換到下一個屏幕,創建活動像下面

<activity 
     android:name="com.example.HomeScreenActivity" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation|keyboardHidden|screenSize" 
     android:label="@string/title_activity_home_screen" 
     android:theme="@style/FullscreenTheme" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

public class HomeScreenActivity extends Activity { 

protected boolean _active = true; 
protected int _splashTime = 3000; // time to display the splash screen in ms 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setTitle("Your Activity Title"); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.activity_home_screen); 

    // thread for displaying the HomeScreen 
    Thread homeTread = new Thread() { 
     @Override 
     public void run() { 
      try { 
       int waited = 0; 
       while(_active && (waited < _splashTime)) { 
        sleep(100); 
        if(_active) { 
         waited += 100; 
        } 
       } 
      } catch(InterruptedException e) { 
       // do nothing 
      } finally { 
       finish(); 
       startActivity(new Intent("com.example.SecondViewActivity")); 
      } 
     } 
    }; 
    homeTread.start(); 

} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
     _active = false; 
    } 
    return true; 
} 

}