2017-10-16 176 views
0

正在尝试创建一个webview应用程序,在第一次午餐后显示一次启动屏幕。最初,一旦我打开应用程序启动屏幕将显示然后5秒后它将加载主要活动VaultActivity,但在我添加了代码行以检查是否启动屏幕'SplashScreen'之前已启动,应用程序停止加载VaultActivity使用我设置的SPLASH_TIME_OUT,并且在我午餐的应用程序中随时都可以看到启动画面。Webview初始屏幕不会像预期的那样显示一次

最初

public class SplashScreen extends Activity { 

    private static int SPLASH_TIME_OUT = 5000; // Splash screen timer 

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

      new Handler().postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        // Start main activity 
        Intent intent = new Intent(SplashScreen.this, VaultActivity.class); 
        startActivity(intent); 
        finish(); 
       } 
      }, SPLASH_TIME_OUT); 

    } 
} 

目前

public class SplashScreen extends Activity { 

    private static int SPLASH_TIME_OUT = 5000; // Splash screen timer 

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

     SharedPreferences pref = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE); 
     if(pref.getBoolean("activity_executed", false)){ 
      new Handler().postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        // Start main activity 
        Intent intent = new Intent(SplashScreen.this, VaultActivity.class); 
        startActivity(intent); 
        finish(); 
       } 
      }, SPLASH_TIME_OUT); 
     } else { 
      SharedPreferences.Editor ed = pref.edit(); 
      ed.putBoolean("activity_executed", true); 
      ed.commit(); 
     } 
    } 
} 

我的清单

<activity 
     android:name=".SplashScreen" 
     android:launchMode="singleTask" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name=".VaultActivity" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait"> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="http" 
       android:host="example.com" 
       android:pathPrefix="/androidmobile" /> 
     </intent-filter> 
    </activity> 

回答

0

:)你只需要在其他部分添加startActivity。

public class SplashScreen extends Activity { 



      private static int SPLASH_TIME_OUT = 5000; // Splash screen timer 

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

       SharedPreferences pref = getSharedPreferences("ActivityPREF", Context.MODE_PRIVATE); 
final SharedPreferences.Editor ed = pref.edit() 
       if(pref.getBoolean("activity_executed", false)){ 
        //ed.putBoolean("activity_executed", true); 
        //ed.commit(); 

    Intent intent = new Intent(SplashScreen.this, VaultActivity.class); 
          startActivity(intent); 
          finish(); 
       } else { 
        new Handler().postDelayed(new Runnable() { 
         @Override 
         public void run() { 
          // Start main activity 
          Intent intent = new Intent(SplashScreen.this, VaultActivity.class); 
          startActivity(intent); 

        ed.putBoolean("activity_executed", true); 
        ed.commit(); 

          finish(); 
         } 
        }, SPLASH_TIME_OUT); 

       } 
      } 
     } 
+0

没有,我只是测试它,它不会吃午饭第一顿午餐的闪屏然后在接下来的午餐它 – Peter

0

你必须调用明星活力在你的其他地方。