2012-04-25 51 views
1

一旦我的启动画面显示1000ms,我收到一个错误,指出“应用程序意外停止,请重试。”这似乎是一个活动,应该在启动屏幕不工作后开始。在启动画面之前,一切正常。 Logcat 显示以下错误“E/AndroidRuntime(5480):java.lang.RuntimeException:无法启动活动ComponentInfo {com.xxxxx.home/com.xxxxx.home.xxxxx}:java.lang.NullPointerException。I beleive the问题是我的飞溅类,但不能针点在哪里。任何有识之士将不胜感激。启动画面后的活动

公共类飞溅延伸活动{

private final int SPLASH_DISPLAY_LENGTH = 1000; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash); 


    new Handler().postDelayed(new Runnable(){ 
     @Override 
     public void run() { 

      Intent openxxxxx = new Intent("com.xxxxx.home.XXXXX"); 
      startActivity(openxxxxx); 

     } 
    }, SPLASH_DISPLAY_LENGTH); 
} 

}

+2

你有没有注册你的所有活动类在显示文件? – MAC 2012-04-25 18:28:42

+0

是的......我的飞溅活动在清单中注册并设置为MAIN和LAUNCHER。我的第二个活动更改为默认,名称设置为与“意图”中的名称相同 – user1165694 2012-04-25 18:39:07

回答

3

下面是完整的代码,你可以使用这个,

package com.fsp.slideview; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.Window; 

public class ImageSplashActivity extends Activity { 
    /** 
    * The thread to process splash screen events 
    */ 
    private Thread mSplashThread; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.splash); 

     final ImageSplashActivity sPlashScreen = this; 

     mSplashThread = new Thread() { 
      @Override 
      public void run() { 
       try { 
        synchronized (this) { 
         wait(2000); 
        } 
       } catch (InterruptedException ex) { 
       } 

       finish(); 
       Intent intent = new Intent(); 
       intent.setClass(sPlashScreen, SlideMainActivity.class); 
       startActivity(intent); 
      } 
     }; 

     mSplashThread.start(); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent evt) { 
     if (evt.getAction() == MotionEvent.ACTION_DOWN) { 
      synchronized (mSplashThread) { 
       mSplashThread.notifyAll(); 
      } 
     } 
     return true; 
    } 
} 
+0

哇这是史诗。伟大的代码。工作过一种享受。谢谢@Aerrow – BENN1TH 2016-11-05 21:49:42

+0

我猜SlideMainActivity是一个动画滑入视图? – BENN1TH 2016-11-05 21:51:49

+0

对不起,我在这个时候到来,但没有人知道如何运行一个应用程序后,在Java桌面应用程序的splashscreen? – 2017-07-14 09:18:59