0
我有麻烦。当我将设备从风景转为纵向或在启动画面时反转。我的主菜单运行两次后,我有两个主菜单,所以我强迫关闭one.How我可以解决这个问题?飞溅后的双主菜单
package tr.gov.egm.mobil;
import java.io.IOException;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.MediaController;
import android.widget.VideoView;
public class SplashActivity extends Activity{
public void onAttachedToWindow() {
super.onAttachedToWindow();
Window window = getWindow();
window.setFormat(PixelFormat.RGBA_8888);
}
private void StartAnimations() {
Animation anim = AnimationUtils.loadAnimation(this, R.anim.push_left_in);
anim.reset();
LinearLayout l=(LinearLayout) findViewById(R.id.lin_lay);
l.clearAnimation();
l.startAnimation(anim);
anim = AnimationUtils.loadAnimation(this, R.anim.alpha);
anim.reset();
ImageView iv = (ImageView) findViewById(R.id.logo);
iv.clearAnimation();
iv.startAnimation(anim);
}
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
ImageView iv = (ImageView) findViewById(R.id.logo);
if(isTablet(this)==true)
{
if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
iv.setImageResource(R.drawable.splashtel);
} else {
iv.setImageResource(R.drawable.splashtablet);
}
}
else
{
if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
iv.setImageResource(R.drawable.splashtel);
} else {
iv.setImageResource(R.drawable.splashtablet);
}
}
StartAnimations();
Thread iplik = new Thread()
{
public void run() {
try {
sleep(4000);
Intent in = new Intent(
getApplicationContext(), MainMenuActivity.class);
startActivity(in);
// Bu fonksiyon ile bir intent* tanımlanarak 2.ekran olan main.xml çağrılıyor
} catch (InterruptedException e) {
e.printStackTrace();
}
finally{
finish();
}
}
};
iplik.start();
}
public void onCompletion(MediaPlayer mp)
{
Intent intent = new Intent(this, MainMenuActivity.class);
startActivity(intent);
finish();
}
public boolean isTablet(Context context) {
boolean xlarge = ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == 4);
boolean large = ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE);
return (xlarge || large);
}
}
这只是神的方式告诉你,闪屏是邪恶的 - http://cyrilmottier.com/2012/05/03/splash-screens-are-evil-dont-use-them/。如果你坚持做一个启动画面(如果我找到它,我会卸载你的应用程序),阅读关于活动生命周期然后再考虑你的问题。 – Simon