2015-01-16 96 views
2

你如何开始一个活动几秒钟,然后开始另一项活动。 我尝试这个代码,当我尝试的应用程序,它直接开始我的MainActivity:Android studio活动

Thread timer=new Thread() { 
     public void run() { 

      try { 

       sleep(5000); 

      } catch (InterruptedException e) { 

       e.printStackTrace(); 

      } finally { 

      } 
      Intent intent = new Intent("app.my.com.newapp.MAINACTIVITY"); 
      startActivity(intent); 

     } 
    }; 
timer.start(); 

而且这里的我的清单文件。

<?xml version="1.0" encoding="utf-8"?> 

<supports-screens 
    android:anyDensity="true" 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:resizeable="true" 
    android:smallScreens="true" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/danger" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".Introduction" 
     android:label="@string/title_activity_introduction"> 
    <intent-filter> 
     <action android:name="app.my.com.newapp.MAINACTIVITY"/> 
     <category android:name="android.intent.category.DEFAULT"/> 


    </intent-filter> 

    </activity> 
</application> 

请帮我!

+0

你的意思你想创建启动画面? –

+0

是的,我想做一个启动画面 – AppGeek

+0

请参考给定的答案。 –

回答

0

使用下面的代码来创建启动画面。

public class SplashActivity extends Activity { 
// Splash screen timer 
private static int SPLASH_TIME_OUT = 1000; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_splash_layout); 
    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      Intent i = new Intent(SplashActivity.this, LoginScreenActivity.class); 
      startActivity(i); 

      // close this activity 
      finish(); 
     } 
    },SPLASH_TIME_OUT); 
} 

}

+0

非常感谢!有效 – AppGeek

0

您需要修改您的清单,看看你的第一个活动,你的发射活动应该是介绍和其他activity标签将定义您的MainActivity。 看来你想创建一个splashscreen,这里是一个link

这可能会帮助你。

0

将您的活动名称重命名为另一个,并将timer线程代码写入onStart()Introduction活动。那么所有人都会按照你的意愿去做。

0

我们可以将Handler连接到我们的活动并通过Handler发布Runnable。

public class MyActivity extends Activity { 
    private final Handler mHandler = new Handler(); 

    private Runnable timedLaunch = new Runnable() { 
     public void run() { 
      // call the intent from here 
     } 
    }; 

    /** Called when the activity is first created. */ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     .... 
     // launch after 5 seconds 
     mHandler.postDelayed(timedLaunch , 5000); 
    } 


    // be sure to remove the callback in case the user leaves the activity before the the given number of seconds have passed 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     mHandler.removeCallbacks(mTask); 
    } 
} 

或者,我们可以使用一个TimerTask(java.util.TimerTask中)是这样的:

class MyTimerTask extends TimerTask { 

    @Override 
    public void run() { 
    // launching code goes here 
    } 

} 

然后创建计时器被安排在给定的延迟:

MyTimerTask myTimerTask = new MyTimerTask(); 
java.util.Timer timer = new java.util.Timer(); 

// runs after 5 seconds 
timer.schedule(myTimerTask, 5000);