android延遲5秒執行
㈠ android怎樣判斷用戶5秒內無操作
希望對你有幫助!首先需要定義一個handler進行接收消息後的處理。然後在適當的時候發送消息,發送消息時需要用到延時,sendMessageDelayed(msg,delay),這里delay就是5000,並且在發送消息之前需要清除掉上一次發送時的delay值removeMessages()。
這樣在onKeyDown函數里調用發消息的方法的話,表示在用戶點擊後5秒發送一個消息到handler,如果在5秒內又有操作的話,會先清除上次的計時再從零開始計時5秒。
所以handler收到消息時一定是用戶5秒內無操作的時候,可以在handleMessage()里寫上你需要的處理邏輯。
㈡ android 執行某個動作,若返回0,過5秒重新執行,重復5次,不再執行
= =怎麼會哦。這個只是很簡單的邏輯哦!!!!
你把代碼發過來。
我給你寫點點先, 看是否能給你靈感、、
int i= 0;
if(i !=5)
{
if(active == 0)
{
i++;
Timer(5000);
//執行
}
}
大概就是這樣的原來,你要根據情況改下。
㈢ 如何延遲android的某段代碼執行時間
要起到延時的作用需要使用Handler。
舉例說明:
java">{
;
privateHandlermHander=newHandler();
privatebooleanmActive=false;
privatebooleanmSwap=true;
privatefinalRunnablemRunnable=newRunnable(){
publicvoidrun(){
if(mActive){
if(mSwap){
mLinearLayout.setBackgroundColor(Color.WHITE);
mSwap=false;
mHander.postDelayed(mRunnable,20);
}else{
mLinearLayout.setBackgroundColor(Color.BLACK);
mSwap=true;
mHander.postDelayed(mRunnable,100);
}
}
}
};
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mLinearLayout=(LinearLayout)findViewById(R.id.strobe);
startStrobe();
}
privatevoidstartStrobe(){
mActive=true;
mHander.post(mRunnable);
}
}
代碼的意思是:程序創建一個閃光點效果,延時顯示:一個是100 ms,其它是20ms。
關於Handler
Handler主要用於非同步消息的處理:當發出一個消息之後,首先進入一個消息隊列,發送消息的函數即刻返回,而另外一個部分在消息隊列中逐一將消息取出,然後對消息進行處理,也就是發送消息和接收消息不是同步的處理。 這種機制通常用來處理相對耗時比較長的操作。
㈣ android中不斷變化的值, 保持在一個范圍並持續5秒就執行下步操作,怎麼實現感激!
我給你思路:你這個功能其實很多軟體都有,那就是 一般程序有個功能 連續按兩次返回鍵才退出。即:按一次返回鍵,程序會提示在按一次返回鍵退出,而且一般是倆秒內在按一次返回鍵才行,過了兩秒,你按返回不行。給你個參考,就是用android中的 handler來實現,給你個例子,相信聰明的你看了之後,肯定知道怎麼做了。http://blog.csdn.net/carterjin/article/details/7677069
其實改那個程序很簡單,第一把onkeydown改成你感測器參數不斷變化那個函數,才把他的2000改成7000。在把intent 該成你要跳轉到Activity
㈤ javaandroid延時函數 怎麼解決這個問題
在Java中有時候需要使程序暫停一點時間,稱為延時。普通延時用Thread.sleep(int)方法,這很簡單。它將當前線程掛起指定的毫秒數。如
Java 代碼復制內容到剪貼板
try
{
Thread.currentThread().sleep(1000);//毫秒
}
catch(Exception e){}
在這里需要解釋一下線程沉睡的時間。sleep()方法並不能夠讓程序"嚴格"的沉睡指定的時間。例如當使用5000作為sleep()方法的參數時,線 程可能在實際被掛起5000.001毫秒後才會繼續運行。當然,對於一般的應用程序來說,sleep()方法對時間控制的精度足夠了。
但是如果要使用精確延時,最好使用Timer類:
Java 代碼復制內容到剪貼板
Timer timer=new Timer();//實例化Timer類
timer.schele(new TimerTask(){
public void run(){
System.out.println("退出");
this.cancel();}},500);//五百毫秒
這種延時比sleep精確。上述延時方法只運行一次,如果需要運行多次, 使用timer.schele(new MyTask(), 1000, 2000); 則每間隔2秒執行MyTask()
㈥ JAVA 安卓開發中 如何實現語句間延遲執行
多線程操作,如
運行後的界面,繼承線程類,或繼承AsyncTask
在類的任務擴展AsyncTask
保護無效的doInBackground(VOID ...參數){
調用Thread.sleep(1000);
}
保護無效onPostExecute(虛空結果){
result.setText(str.toString()); BR />
}
}
主線程「新」的任務()()內的;
㈦ 安卓:怎麼在5秒後發送intent給broadcastReceiver
/**
*此函數用於延遲發送廣播,注意此函數需要在主線程調用.
*比如activity任意生命周期都是運行在主線程的.
*
*@paramcontext
*用來發送broadcast的context,比如activity實例
*@paramintent
*想要發送的intent
*@paramdelay
*想要延遲的時間
*/
(
finalContextcontext,finalIntentintent,longdelay){
//未指定Thread的Handler就會運行在主線程
Handlerhandler=newHandler();
//延遲執行發送廣播的邏輯
handler.postDelayed(newRunnable(){
@Override
publicvoidrun(){
context.sendBroadcast(intent);
}
},delay);
}
㈧ Android延時操作的幾種方式
在Android開發中我們可能會有延時執行某個操作的需求,例如我們啟動應用的時候,一開始呈現的是一個引導頁面,過了兩三秒後,會自動跳轉到主界面。這就是一個延時操作。
下面是實現延時執行操作的幾種方法:
1.使用線程的休眠實現延時操作
new Thread() { @Override
public void run() { super.run();
Thread.sleep(3000);//休眠3秒
/**
* 要執行的操作
*/
}
}.start();
2.使用TimerTask實現延時操作
TimerTask task = new TimerTask() { @Override
public void run() { /**
*要執行的操作
*/
}
};
Timer timer = new Timer();
timer.schele(task, 3000);//3秒後執行TimeTask的run方法
3.使用Handler的postDelayed方法實現延時操作
Handler handler = new Handler();
handler.postDelayed(new Runnable() { @Override
public void run() { /**
*要執行的操作
*/
}
}, 3000);//3秒後執行Runnable中的run方法
㈨ android 開發中如何實現讓程序執行一條語句後延時一段時間後再執行下面的語句
你這方法完全是利用了單片機處理速度慢才會有偽延時效果,實際上那時機器正在運算,放在好點的機器上運算速度快了當然就沒延時效果了。正統的延時還是要用到樓上說的線程,安卓還有一個timer類也可以用於定時。
㈩ android 開發中如何實現讓程序執行一條語句後延時一段時間後再執行下面的語句
延時操作,可以用下列方案:
方案1:線程阻斷
try {
Thread.currentThread().sleep(2000);//阻斷2秒
} catch (InterruptedException e) {
e.printStackTrace();
}
方案2:使用Handler的postDelayed延遲操作。
mHandler .postDelayed(mRunnable, 3000); // 在Handler中執行子線程並延遲3s。
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
mHandler.sendEmptyMessage(1);
}
};
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//3s後執行代碼
}
}。