从另一个活动开始主要活动

时间:2014-04-02 07:58:25

标签: android android-intent

我正在尝试在Android上实现以下案例,但没有成功: 1)启动应用程序(Launcher Activity,它是Base Activity的子类)。 Base Activity的代码如下:

///This is in BaseActivity
@Override
public void onCreate(Bundle instance)
{
    super.onCreate(instance);
    //Config.isLoggedIn() is a static function.
    if(! Config.isLoggedIn())
    {
        ////Config.startLoginActivity is a static function
        Config.startLoginActivity(this, getIntent());
        finish();
    }
}

Config.startLoginActivity函数定义为

public static void startLoginActivity(final Context ctx, final Intent finishIntent)
{
    Intent i = new Intent(ctx, ItemListActivity.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.putExtra("FINISH_INTENT", finishIntent);
    ctx.startActivity(i);
}

现在,ItemListActivity包含Item列表{Item1,Item2,Item3}。在ItemListActivity中,我正在保存传递的" finishIntent"如

///This is ItemListActivity onCreate Method
if(getIntent().hasExtra("FINISH_INTENT"))
        mFinishIntent = getIntent().getParcelableExtra("FINISH_INTENT");

和onItemListSelected方法描述如下:

@Override
public void onItemSelected(String id) {
Config.setLogInState(true);
    if(mFinishIntent != null)
    {

        Log.i("ITEMLISTACTIVITY", "Class Name = " + mFinishIntent.getClass().getName());
        Log.i("ITEMLISTACTIVITY", "Starting mFinishIntent Activity");
        startActivity(mFinishIntent);
        finish();
    }
}

但问题是主要活动没有再次启动,Android将我带到主屏幕。在寻找解决方案时,我看到Google I / O应用程序具有相同的实现,并且运行完美,但在我的情况下却不是。我无法弄清楚。请帮忙。

先谢谢。

清单文件如下:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.app.myapplication.ItemListActivity"
        android:label="@string/app_name" >
    </activity>

      <activity
        android:name="com.app.myapplication.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

1 个答案:

答案 0 :(得分:0)

好的这是一个快速的帮助,它可以100%使用,我使用的不是大多数,而是每时每刻!你必须通过意图通过它,在你的情况下,它必须是这样的。

意图意图=新意图(//您当前活动的名称。这,//您要去的活动的名称.class); startActivity(意向);

希望这会有所帮助