1

我正在使用支持庫4和7.我正在通過intent開始一個活動。這是一個ActionBarActivity,android.support.v7.app.actionbaractivity。Android開始ActionBarActivity首先顯示空白頁面

我遇到的問題是當我開始並顯示新的活動。在我的活動顯示之前,我通過一個像這樣的android徽標來獲得空白活動。很難得到這些照片,但我認爲這足以說明問題。

我該如何擺脫這種行爲?

該問題如下所示。

1)我的新活動開始加載。

enter image description here

2)我的新活動幾乎加載。

enter image description here

3)我的新的活動被加載。 android圖標現在不見了。

enter image description here

我開始一個活動是這樣的:

Intent intent = new Intent(this, SomeActivity.class); 
startActivity(intent); 

這是我的配置看起來像在清單中。

<activity 
     android:name="com.blah.bli.activities.SomeActivity" 
     android:alwaysRetainTaskState="true" 
     android:configChanges="keyboardHidden|orientation|screenSize" 
     android:icon="@drawable/tidsam_logo" 
     android:label="@string/empty_title" 
     android:launchMode="singleInstance" 
     android:theme="@style/Theme.AppCompat.Light" /> 

活動code.First,他們大多從該類繼承,因爲我需要註銷功能,併爲我需要保持軌道上,當用戶是最後一個活動。我覺得沒有什麼奇怪的。

的acitivty大,做了很多事情

public class SuperActionBarActivity extends ActionBarActivity { 

    ApplicationExtension appState; 

    @Override 
    public void onUserInteraction(){ 
     appState.LastActive = Calendar.getInstance(); 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     appState = ((ApplicationExtension)getApplicationContext()); 
     appState.LastActive = Calendar.getInstance(); 

    } 


} 

這是有問題的一個簡單的活動。

public class HelpActivity extends SuperActionBarActivity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_help); 

     setActionBar(); 
    } 

    // todo: create actionbar util class 
    private void setActionBar() { 
     getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
     getSupportActionBar().setCustomView(R.layout.abs_layout); 
     TextView login = (TextView) findViewById(R.id.abs_layout_login); 
     login.setVisibility(View.INVISIBLE); 

     FontUtils.applyFontAwesomeToControl(this, findViewById(R.id.abs_layout_back)); 
    } 

    public void onClick(View v) { 

     if (v == null) return; 

     switch (v.getId()) { 
     case R.id.abs_layout_back: 
      onBackPressed(); 
      break; 
     } 

    } 
} 
+0

顯示com.blah.bli.activities.SomeActivity代碼 –

+0

根據要求我加入activites中的一個的例子。 – Johan

回答

2

這是因爲Android使用您在清單中設置的主題來創建「虛擬」活動,直到您的應用程序被加載。

在清單中設置自定義主題會以與應用程序其餘部分相同的樣式加載虛擬活動,並且使其不太明顯。

這裏的教程如何做到這一點:http://cyrilmottier.com/2013/01/23/android-app-launching-made-gorgeous/