延迟执行代码无崩溃
问题描述:
我正在寻找一种方法来延迟我的应用程序创建和显示吐司。我使用几个不同的时间间隔,最大的是5分钟。我使用睡眠来延迟程序,但大约一分钟后,应用程序将崩溃。任何帮助将不胜感激。如果需要更多信息,请告诉我!谢谢!!延迟执行代码无崩溃
答
这是一个AsyncTask,它在被调用5秒后显示Toast。
public class ToastAsyncTask extends AsyncTask<String,Void,String>
{
private Context mContext;
public SaveAuctionAsyncTask(Context mContext)
{
this.mContext = mContext;
}
protected void onPreExecute()
{
}
@Override
protected String doInBackground(String... arg0)
{
Thread.sleep(300000); //300000 is 5 minutes
}
@Override
protected void onPostExecute(String result)
{
Toast.makeText(mContext, "Showing toast", Toast.LENGTH_LONG).show();
}
}
您从活动执行的ToastAsyncTask的方法是这样的:
ToastAsyncTask toastAsyncTask = new ToastAsyncTask (this);
toastAsyncTask .execute();
答
您可以使用一个处理器的postDelayed
在主UI线程后执行代码:
int delay = 2000;
Handler handler = new Handler();
// to execute in 2 sec
handler.postDelayed(new Runnable() {
@Override
public void run() {
Toast.makeText(mContext, "Showing toast", Toast.LENGTH_LONG).show();
}}, delay);
+0
使用view.postDelayed()跳过新的Handler()部分。 – songchenwen
您可以使用类似于AsyncTask或线程的东西,只需指定线程即可。休眠(毫秒); – Arlind