導航:首頁 > 操作系統 > android線程延遲執行

android線程延遲執行

發布時間:2022-10-22 12:43:18

A. android開發等待一段時間後執行下一條語句,但是thread.sleep(30000)之後線程就掛起了

android的開發思路中,基本上都是由子線程去執行任務的,然後執行完了之後發回message再由handler去處理。這樣才不會影響程序連貫性的操作。
你這個需要sleep之後再執行的語句,就放到子線程中去。

B. 安卓線程handler.post傳送消息有延時,怎麼辦

延遲是跟網路有關系的,HANDLER.POST沒有大多關聯。我用的時候也出現同樣的問題 換網路就原滿解決了,請採納

C. 如何延遲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主要用於非同步消息的處理:當發出一個消息之後,首先進入一個消息隊列,發送消息的函數即刻返回,而另外一個部分在消息隊列中逐一將消息取出,然後對消息進行處理,也就是發送消息和接收消息不是同步的處理。 這種機制通常用來處理相對耗時比較長的操作。

D. android 怎麼樣在listview的adapter.notifyDataSetChanged 結束後執行一些操作

恩,原理是這樣的,notifyDataSetChanged()其實是非同步的,因為設計的時候如果同步的話如果數據量大或者有耗時操作主線程會出現ANR。可惜的是notifyDataSetChanged並沒有監聽,所以你不知道是否執行完了。我的解決方式是使用postdelay來延遲主線程的執行,達到假同步的效果。

E. Android dialog能設置延遲或者倒計時嗎

//可以設置延遲啟動Dialog,以後用Handler設置延遲
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
new Dialog(context).show();
}
},delaytime);

delaytime//延遲時間

F. 安卓線程handler.post傳送消息有延時,怎麼辦

延遲是跟網路有關系的,
HANDLER.POST沒有大多關聯。
我用的時候也出現同樣的問題
換網路就原滿解決了

G. android在主線程中使用handle.postdelay做延時操作對主線程資源消耗大嗎

android在主線程中使用handle.postdelay做延時操作對主線程資源消耗不大,因為handler中有一個消息池,是靜態的消息池, 建議去了解一下Android中的Handler, Looper, MessageQueue之間的關系就知道了.

H. android 開發中如何實現讓程序執行一條語句後延時一段時間後再執行下面的語句

你這方法完全是利用了單片機處理速度慢才會有偽延時效果,實際上那時機器正在運算,放在好點的機器上運算速度快了當然就沒延時效果了。正統的延時還是要用到樓上說的線程,安卓還有一個timer類也可以用於定時。

I. 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後執行代碼

}

}。

J. android中開線程延時問題

我想做到的效果是屏幕中畫一個圓,然後圓會慢慢變小,當半徑變成1時停止變小。然後每觸摸一次屏幕圓半徑會增大,直到半徑到100停止。我把這兩個寫在了兩個線程里,但是目前運行下來觸摸屏放大圓可以,但是圓自己慢慢變小卻不行。

MainActivity.java 重要 代碼

public class MainActivity extends Activity{

private Thread thread1;
private Thread thread2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final FrameLayout frame=new FrameLayout(this);
setContentView(frame);
frame.findViewById(R.id.framelayout1);
final MyView view=new MyView(this);

thread1=new Thread(new Runnable(){
@Override
public void run(){
view.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v,MotionEvent event){
++view.r;
view.invalidate();
return true;
}
});
}
});

thread2=new Thread(new Runnable(){
@Override
public void run(){
--view.r;
view.invalidate();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});

thread1.start();
thread2.start();
frame.addView(view);
if (view.r==1)
{
thread2.interrupt();
}
if (view.r==100){
thread1.interrupt();
}
}

}

class MyView extends View{
int r=10,x,y;
public MyView(Context context){
super(context);
x=context.getResources().getDisplayMetrics().widthPixels/2;
y=context.getResources().getDisplayMetrics().heightPixels/2;
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
Paint paint=new Paint();
paint.setAntiAlias(true);
paint.setStrokeWidth(3);
paint.setStyle(Style.STROKE);
paint.setColor(Color.BLUE);
canvas.drawCircle(x,y,r,paint);
}
}

閱讀全文

與android線程延遲執行相關的資料

熱點內容
什麼app能查醫生 瀏覽:175
輕量級的編程語言 瀏覽:338
程序員那麼可愛生孩子 瀏覽:432
後綴him3加密文件是什麼軟體 瀏覽:984
堅果隱藏app為什麼要140版本才能用 瀏覽:313
淘寶dns伺服器地址 瀏覽:259
領英轉型app哪個好用 瀏覽:943
壓縮軟體的圖標 瀏覽:97
賣鞋哪個app是真的 瀏覽:469
python迭代是累計嗎 瀏覽:419
程序員哪些平台接私活 瀏覽:175
單片機充電電路原理圖 瀏覽:1000
android軟體雲伺服器地址 瀏覽:213
如何用伺服器做內網穿透服務 瀏覽:401
oracle加密表空間重置密碼 瀏覽:302
mdk編譯後目標文件 瀏覽:616
老人動手解壓 瀏覽:720
小米sd卡解壓 瀏覽:996
程序員那麼可愛陸漓替老袁說情 瀏覽:28
當女程序員遇見問題 瀏覽:746