我用活动制作了一个闪屏。我按照以下示例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中可以解决问题。然而。每次我离开应用程序时,它都会重新启动所有内容(启动屏幕,主要活动而不是最后加载的活动)。但它比以前更好。