启动画面仅在清洁安装后显示

时间:2011-05-13 06:55:30

标签: android install splash-screen

我用活动制作了一个闪屏。我按照以下示例http://www.anddev.org/viewtopic.php?t=815进行操作,安装后效果很好。但这就是我的问题开始的地方。它仅在安装后显示。所以当我杀死我的应用程序时,Activity不再被加载,它直接加载我的第二个Activity。我认为这有点奇怪,因为我在启动画面上的manifest文件中设置了intent-filter。

任何人都知道如何解决这个问题?

这是我的manifestfile:

<application android:icon="@drawable/icon" android:label="@string/app_name" 
android:theme="@style/MyLightTheme.NoShadow" android:debuggable="true"  android:name="android.app.Application" > 
<uses-library android:name="com.google.android.maps" />

    <activity android:name=".MainActivity" android:label="@string/app_name"></activity>
    <activity android:name="FindJob" android:label="@string/FindJobTitel"></activity>
    <activity android:name="JobDetails" android:label="@string/MaatTitel" ></activity>
    .
    .
    .
    <activity android:name="Splash" android:configChanges="orientation" android:label="@string/Splash">    
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter></activity>
</application>

Splashscreencode:

private final int SPLASH_DISPLAY_LENGHT = 5000;
//private Drawable drawable;
private ProgressBar mProgress;
private int mProgressStatus = 0;


/** Called when the activity is first created. */ 
@Override
public void onCreate(Bundle icicle) {
     super.onCreate(icicle);          
     setContentView(R.layout.splash);         
     mProgress = (ProgressBar) findViewById(R.id.progressBar1);         
     }


public void onStart(){
    super.onStart();
    //Log.i("START", "In on start");
    Thread splashThread = new Thread() {
        @Override
        public void run() {
           try {
              int waited = 0;
              while (mProgressStatus < 100) {
                 sleep(80);
                 //waited += 200;
                 mProgressStatus += 4;
                 mProgress.setProgress(mProgressStatus);
              }
           } catch (InterruptedException e) {
              // do nothing
           } finally {
              finish();
             Intent i = new Intent(Splash.this, MainActivity.class);
              startActivity(i);
           }
        }
     };
     splashThread.start();   
}

更新:将android:noHistory="true"放在ManifestFile中的mainActivity中可以解决问题。然而。每次我离开应用程序时,它都会重新启动所有内容(启动屏幕,主要活动而不是最后加载的活动)。但它比以前更好。

0 个答案:

没有答案