При загрузке динамически сначала отображается пустой экран
HI Я загружаю динамическую активность, основанную на том, вошел ли пользователь в систему или нет. Я выполняю поиск в Интернете и получил решение, которое запрашивает создание пустого действия, проверяет условие в oncreate, запускает новое действие на основе условия и завершает пустое действие. Тем не менее, это показывает мне пустой белый экран в течение 1-2 секунд. Как мне этого избежать?
(Я удалил макет по умолчанию при создании пустого действия.)
Вот мой код:
public class BlankActivity extends Activity {
public SharedPreferences mStoredValues;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent loadIntent;
mStoredValues = getSharedPreferences(Constants.STORED_VALUES, 0);
if (mStoredValues.contains(Constants.ACCESS_TOKEN)) {
loadIntent = new Intent(BlankActivity.this, HomeScreen.class);
}
else {
loadIntent = new Intent(BlankActivity.this, Login.class);
}
startActivity(loadIntent);
finish();
}
}
Вот подробности деятельности в файле манифеста.
<activity
android:name="com.citrus.citruspay.BlankActivity"
android:launchMode="singleInstance"
android:noHistory="true"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
2 ответа
Вы должны использовать фрагменты, чтобы покрыть эту ситуацию. Вы можете выбрать, какой фрагмент вы добавите в свою деятельность динамически. Попробуйте что-то вроде этого:
public class FirstActivity extends FragmentActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
mStoredValues = getSharedPreferences(Constants.STORED_VALUES, 0);
Fragment fragment;
if (mStoredValues.contains(Constants.ACCESS_TOKEN)) {
fragment = new HomeScreenFragment();
}
else {
fragment = new LoginFragment();
}
getFragmentManager().beginTransaction().add(R.id.container_id,fragment).commit();
}
Добавлять android:theme="@android:style/Theme.Translucent.NoTitleBar"
на ваш первый тег активности в манифесте и посмотреть.
<activity android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:name="com.citrus.citruspay.BlankActivity"
android:launchMode="singleInstance"
android:noHistory="true"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>