如何启动一个不同的活动后按下一个button在Android的一些延迟?

我想要一个新的活动应该按一下button,延迟一段时间。 是否有可能做到这一点,什么是程序。

Solutions Collecting From Web of "如何启动一个不同的活动后按下一个button在Android的一些延迟?"

您可以使用Handler postDelayed()方法调用Runnable。

这是一个例子(http://developer.android.com/resources/articles/timed-ui-updates.html):

private Handler mHandler = new Handler(); ... OnClickListener mStartListener = new OnClickListener() { public void onClick(View v) { mHandler.postDelayed(mUpdateTimeTask, 100); } }; private Runnable mUpdateTimeTask = new Runnable() { public void run() { // do what you need to do here after the delay } }; 

道具到@mad为了得到它正确的第一次。

使用带有可启动行为的runDeable的postDelayed()调用。 示例代码可以是

  //will care for all posts Handler mHandler = new Handler(); //the button's onclick method onClick(...) { mHandler.postDelayed(mLaunchTask,MYDELAYTIME); } //will launch the activity private Runnable mLaunchTask = new Runnable() { public void run() { Intent i = new Intent(getApplicationContext(),MYACTIVITY.CLASS); startActivity(i); } }; 

请注意,这使接口保持反应。 您应该关心从您的button中删除onclick监听器。

使用此代码

 new Handler().postDelayed(new Runnable() { @Override public void run() { final Intent mainIntent = new Intent(CurrentActivity.this, SecondActivity.class); LaunchActivity.this.startActivity(mainIntent); LaunchActivity.this.finish(); } }, 4000); 

您可以使用postDelayed(Runnable action, long delayMillis)的方法postDelayed(Runnable action, long delayMillis)Runnable添加到消息队列中以在(近似)延迟后运行。

有时候,只要你的应用程序被杀死,你就需要这样做。 在这种情况下,你不能在你的进程中使用处理runnable或消息。 在这种情况下,你可以使用AlarmManager来做到这一点。 希望这个例子可以帮助任何人:

 Intent intent = new Intent(); ... PendingIntent pendingIntent = PendingIntent.getActivity(<your context>, 0, intent, PendingIntent.FLAG_ONE_SHOT); AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); mgr.set(AlarmManager.RTC, <your delay>, pendingIntent); 
 runOnUiThread(new Runnable() { @Override public void run() { new Handler().postDelayed(new Runnable(){ @Override public void run() { Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); } }, 4000); } }); 

试试这段代码

 new Timer().schedule(new TimerTask() { @Override public void run() { // run AsyncTask here. } }, 3000);