2014-04-02 60 views
0

我想在Android上實現以下情況,但沒有成功: 1)啓動應用程序(啓動程序活動,它是基本活動的子類)。基底活動具有代碼如下:從其他活動開始主要活動

///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包含項目爲{項目1,項目2,項目3}的列表。在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> 
+0

你的Manifest怎麼樣?你在那裏宣佈哪些活動,哪一個是主要的?而且,「主要活動不會再次啓動」是否指「BaseActivity」? –

+0

我已添加清單代碼。不,主要活動我的意思是「** com.app.myapplication.MainActivity **」 –

+0

在onItemSelected中,Log.i的輸出是什麼(「ITEMLISTACTIVITY」,「Class Name =」...'?你也是有一個鏈接到原來的Google I/O示例? –

回答

0

確定這裏是一個快速的幫助,這適用於100%的我用不大多,但每次它!你必須通過意圖來通過它,在你的情況下,這是它的樣子。 (你的活動的名字,你現在在這個時刻,這個名字,你想去的活動的名字)。 startActivity(intent);

希望這會有所幫助