不适用于Android 2.3开始MainActivity(Not start MainActivi

2019-08-17 09:36发布

我想开始我的MainActivity中的Android 2.3,它不会启动,但Jelly Bean中它的工作原理。 我没有错误,没有任何反应!

我注意到,当我使用putExtra,那么这是行不通的。 是否有一个原因?

启动MainActivity

final ComponentName cn = new ComponentName("de.application.ui", "de.application.ui.MainActivity");

    Intent intent = IntentCompat.makeRestartActivityTask(cn);
    intent.putExtra("de.application.exit", true); // I have this line in it yet
    activity.startActivity(intent);

表现

<activity
        android:theme="@style/Theme"
        android:name=".ui.MainActivity"
        android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

我的解决方案,它的工作原理。

启动MainActivity

   Intent intent = new Intent(activity, MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("de.application.exit", true);
    activity.finish();
    activity.startActivity(intent);

表现

<activity
        android:theme="@style/Theme"
        android:name=".ui.MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

Answer 1:

我这样做是为了启动一个主要活动:

Intent intent = IntentCompat.makeRestartActivityTask(cn);
activity.startActivity(intent);


        Intent i =  new Intent("android.intent.action.MAIN");
        final ComponentName cn = new ComponentName  ("de.application.ui", "de.application.ui.MainActivity");

                        i.setComponent(n);                          

                    try {
                        startActivity(i);
                    } 
                    catch (ActivityNotFoundException e) {

                    }


Answer 2:

可能想试试这个:

    Intent intent = new Intent("android.intent.action.MAIN");
    intent.addCategory("android.intent.category.LAUNCHER");
    intent.setComponent(new ComponentName("de.application.ui", "de.application.ui.MainActivity"));
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.putExtra("de.application.exit", true);
    startActivity(intent);


文章来源: Not start MainActivity with android 2.3