导航:首页 > 操作系统 > android延时执行

android延时执行

发布时间:2022-10-03 11:32:40

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 dialog能设置延迟或者倒计时吗

//可以设置延迟启动Dialog,以后用Handler设置延迟
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
new Dialog(context).show();
}
},delaytime);

delaytime//延迟时间

Ⅲ 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()

Ⅳ 如何延迟android的某段代码执行时间

要起到延时的作用需要使用Handler。

举例说明:

{

;

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 开发中如何实现让程序执行一条语句后延时一段时间后再执行下面的语句

你这方法完全是利用了单片机处理速度慢才会有伪延时效果,实际上那时机器正在运算,放在好点的机器上运算速度快了当然就没延时效果了。正统的延时还是要用到楼上说的线程,安卓还有一个timer类也可以用于定时。

Ⅵ 安卓 lua语言 在for中,如何写指令延时指令

sleep() 函数?
android:Sleep(100) --延时100ms。

不过这样写,最好使用多线程,不然程序化卡在那。

Ⅶ android如何实现执行一个函数以后,过三秒再执行另一个函数

可以用定时任务实现,方法多样,比如定义一个 Handler,然后使用postDelay方法,延时时间定为3秒,还可以用 Timer实现,写一个Timer执行一个TimerTask

阅读全文

与android延时执行相关的资料

热点内容
银河v10驱动重编译 浏览:889
电脑上文件夹右击就会崩溃 浏览:689
右美维持算法 浏览:938
php基础编程教程pdf 浏览:219
穿越之命令与征服将军 浏览:351
android广播重复 浏览:832
像阿里云一样的服务器 浏览:318
水冷空调有压缩机吗 浏览:478
访问日本服务器可以做什么 浏览:433
bytejava详解 浏览:448
androidjava7 浏览:385
服务器在山洞里为什么还有油 浏览:886
天天基金app在哪里下载 浏览:974
服务器软路由怎么做 浏览:292
冰箱压缩机出口 浏览:229
OPT最佳页面置换算法 浏览:645
网盘忘记解压码怎么办 浏览:853
文件加密看不到里面的内容 浏览:654
程序员脑子里都想什么 浏览:434
oppp手机信任app在哪里设置 浏览:189