Android: Black Screen between Activity

后端 未结 5 404
误落风尘
误落风尘 2021-01-05 06:45

When I go one activity to another activity , between the transaction a Black screen is come for some seconds. I properly finish the activity before calling startActv

相关标签:
5条回答
  • Assumption :-

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.xyz);
    
        // comment code here
        }
    

    If you go from activity A to B then try to comment code in OnCreate , OnResume in Activity B Like this and check what happen still black screen is coming or not.If coming then try to change theme.

    0 讨论(0)
  • 2021-01-05 07:07

    If you have a finish() or FLAG_ACTIVITY_CLEAR_TASK - a blank screen may show up on pre ICS devices

    To avoid this black screen you have to add one line in intent

    overridePendingTransition (0, 0);
    

    Example(kotlin):

    val intent = Intent(applicationContext, MainActivity::class.java)
    intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
    startActivity(intent)
    overridePendingTransition (0, 0)
    

    Example(Java):

    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    overridePendingTransition (0, 0);
    
    0 讨论(0)
  • 2021-01-05 07:12

    for disable this default animation create one style:

    <style name="noAnimTheme" parent="android:Theme">
    <item name="android:windowAnimationStyle">@null</item>
    </style>
    

    and set it as theme for your activity in the manifest:

    <activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme">
    </activity>
    
    0 讨论(0)
  • 2021-01-05 07:23

    There is no need to finish activity before calling startActivity().

    Make sure that you have set content view in the onCreate of called Activity and that you are not blocking UI thread (check onCreate, onStart and onResume if you have override them).

    0 讨论(0)
  • 2021-01-05 07:28

    You don't need to manage finshing your activity, this will be managed automatically when the activity is no longer in view. Just use:

    startActivity(new Intent(this, MyNextActivity.class));
    

    And use this code in whatever method you are using to navigate the activity changes.

    If you make sure your window is the background of your activities you can set the window background to a color other than black:

    <item name="android:windowBackground">@drawable/window_background</item>
    
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
        <solid android:color="@color/window_background"/>
    </shape>
    

    windowBackground in Android 6 (Marshmallow)

    The other option is to manage transitions, so there is no gap between the end of the first transition and the beginning of the second. However, you have not mentioned transitions.

    How to remove the delay when opening an Activity with a DrawerLayout?

    0 讨论(0)
提交回复
热议问题