2017-10-05 259 views
2

我不知道是什么导致了这种情况 - 我在一些场合使用了片段并覆盖了后退按钮,但总体而言没有任何明显的迹象表明这是为什么发生。应用程序第一次在应用程序启动后显示白屏的应用程序

我已经检查了logcat,没有任何注释显示为什么发生这种情况 - 有没有人有任何想法可能是什么问题或检查什么?

没有对onDestroy进行手动调用。

一旦我意识到存在问题,然后我试着找出在生命周期中这将会发生多久,并且应用程序在安装时加载正常,然后如果我登录到应用程序然后杀死应用程序,我无法加载它再次,我只是得到一个白色的屏幕如下所示。

Android清单

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.year3.practise"> 

    <uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 


     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

MainActivity

public class MainActivity extends AppCompatActivity { 

    private SharedPreferences pref; 

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


     pref = getPreferences(0); 
     //initialise method 
     initFragment(); 

    } 

private void initFragment(){ 

    Fragment fragment; 
    if(pref.getBoolean(Constants.IS_LOGGED_IN,false)){ 
     fragment = new ProfileFragment(); 
    } 
    else { 
     fragment = new QuestionPinFragment(); 

     // update the main content by replacing fragments 
     FragmentManager fragmentManager = getSupportFragmentManager(); 
     fragmentManager.beginTransaction() 
       .replace(R.id.fragment_frame, fragment) 
       .commit(); 
    } 

    } 

} 

enter image description here

+0

后AndroidManifest.xml后,你的MainActivity代码请 –

+0

@JuanCruzSoler,我加入了两个 - 感谢试图帮助。 –

回答

2

要替换的片段只在else子句。
第二次打开应用程序时,首选项IS_LOGGED_IN为true,并且不显示片段。

尝试使用此代码:

private void initFragment(){  
    Fragment fragment; 
    if (pref.getBoolean(Constants.IS_LOGGED_IN,false)) { 
     fragment = new ProfileFragment(); 
    } else { 
     fragment = new QuestionPinFragment(); 
    } 

    // update the main content by replacing fragments 
    FragmentManager fragmentManager = getSupportFragmentManager(); 
    fragmentManager.beginTransaction() 
     .replace(R.id.fragment_frame, fragment) 
     .commit();   
} 
+1

谢谢胡安,我正在看着我的所有其他碎片,并错过了显而易见的事情 - 学习! –

相关问题