导航:首页 > 操作系统 > 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延时执行相关的资料

热点内容
考研词汇刘一男pdf 浏览:119
kali的内核头编译 浏览:867
数控铣床洗斜面怎么编程 浏览:894
程序员基础架构岗怎么样 浏览:412
有什么好的付费app 浏览:626
java生成6随机数字 浏览:177
汇编语言程序设计教程pdf 浏览:44
我的老公是冥王在哪个app上看 浏览:70
程序员婚前准备 浏览:372
金铲铲之战微信安卓兑换码怎么换 浏览:846
单片机38译码器 浏览:335
思域换压缩机 浏览:183
必应服务器ip地址 浏览:628
魔兽世界服务器怎么连接 浏览:39
什么地方会用到云服务器 浏览:54
pdfarchitect 浏览:676
图片找不到文件夹 浏览:199
看书免费app哪个最好 浏览:630
python服务器怎么安装 浏览:382
程序员新技术 浏览:52