2013-07-12 32 views
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); 
} 

} 
+2

这只是神的方式告诉你,闪屏是邪恶的 - http://cyrilmottier.com/2012/05/03/splash-screens-are-evil-dont-use-them/。如果你坚持做一个启动画面(如果我找到它,我会卸载你的应用程序),阅读关于活动生命周期然后再考虑你的问题。 – Simon

回答

0

刚刚覆写onConfigurationChanged(Bundle savedInstance)方法和根据您的要求处理。