我正在使用支持库4和7。我正在按意图开始活动。这是ActionBarActivity,android.support.v7.app.actionbaractivity。

我遇到的问题是何时开始显示新活动。在我的活动显示之前,我得到一个带有android徽标的空白活动,如下所示。很难获得图片,但我认为它足以说明问题。

如何摆脱这种行为?

问题在下面说明。

1)我的新活动开始加载。



2)我的新活动即将加载。



3)我的新活动已加载。 android图标现在不见了。



我以这种方式开始活动:

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" />


活动代码。首先,大多数活动代码都继承自此类,因为我需要注销功能,因此需要跟踪用户上一次活动的时间。我想这没什么奇怪的。

积极性大,做很多事情

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

    }
}

最佳答案

这是因为Android会使用您在清单中设置的主题来创建“虚拟”活动,直到应用程序加载完毕。

在清单中设置自定义主题将以与应用程序其余部分相同的样式加载虚拟活动,并使其不那么引人注意。

这里是一个教程如何做到这一点:http://cyrilmottier.com/2013/01/23/android-app-launching-made-gorgeous/

关于android - Android启动ActionBarActivity首先显示空白页,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22681126/

10-11 22:33
查看更多