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で得られるのと同じ効果が必要です

前もって感謝します

4

2 に答える 2

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;
}

}
于 2013-01-22T10:06:10.150 に答える
0

この追加を試して、機能するかどうかを確認してください。

このカテゴリの代わりに、 startMain.addCategory(Intent.CATEGORY_LAUNCHER);

これを試して、

startMain.addCategory(Intent.CATEGORY_HOME);
于 2013-01-22T10:01:56.467 に答える