[英]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.