[英]after pressing home button also how to start app from starting activity in android
[英]How to start a different activity with some delay after pressing a button in android?
我希望新的活动开始时按下按钮会有一些延迟。 是否有可能这样做,并且该程序是什么。
使用postDelayed()调用runnable启动您的活动。 示例代码可以是
//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);
}
};
请注意,这使接口保持反应。 然后,您应该关注从按钮中删除onclick侦听器。
您可以使用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,让他们第一次做对。
使用此代码
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)
上View
到添加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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.