相关疑难解决方法(0)

如何在Android中暂停/休眠线程或进程?

我想在两行代码之间暂停一下,让我解释一下:

- >用户单击一个按钮(实际上是一张卡片),我通过更改此按钮的背景来显示它:

thisbutton.setBackgroundResource(R.drawable.icon);
Run Code Online (Sandbox Code Playgroud)

- >让我们说1秒后,我需要通过改变它的背景来回到按钮的先前状态:

thisbutton.setBackgroundResource(R.drawable.defaultcard);
Run Code Online (Sandbox Code Playgroud)

- >我试图在这两行代码之间暂停线程:

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.也许这是我需要暂停的过程而不是线程?

我也尝试过(但它不起作用):

new Reminder(5);
Run Code Online (Sandbox Code Playgroud)

有了这个:

public class Reminder {

Timer timer;

        public Reminder(int seconds) {
            timer = new Timer();
            timer.schedule(new RemindTask(), seconds*1000);
        }

        class RemindTask extends TimerTask {
            public void run() {
                System.out.format("Time's up!%n");
                timer.cancel(); //Terminate the timer thread
            }
        }  
    }
Run Code Online (Sandbox Code Playgroud)

如何暂停/休眠线程或进程?

multithreading android process

284
推荐指数
9
解决办法
58万
查看次数

android studio中的代码片段

有谁知道如何将代码片段添加到android工作室?我没有找到菜单条目或类似的东西.

我也知道是否可以更改现有的片段?

android android-studio

47
推荐指数
3
解决办法
3万
查看次数

Android相机 - 应用程序传递NULL表面

每当我运行cam_thread时,我都会收到错误"app pass NULL surface".这个代码据说可以在HTC Incredible 1上运行.我已经稍微重新配置它以在机器人x上运行.但是我仍然遇到这个错误.

public class Android_Activity extends Activity 
{       
    Main_thread simulator;
    ToggleButton togglebutton;
    EditText ip_text;
    SensorManager sm = null;
    SurfaceView view;
    Sensors_thread the_sensors=null;
    String IP_address;
    Android_Activity the_app;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {       
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        view = new SurfaceView(this);       
        sm = (SensorManager) getSystemService(SENSOR_SERVICE);
        ip_text = (EditText) findViewById(R.id.IP_edit_txt);
        togglebutton = (ToggleButton) findViewById(R.id.CameraButton);
        togglebutton.setOnClickListener(new btn_listener());        
        the_app = this;
    }

    @Override
    protected void onResume() 
    {
        super.onResume();
    }

    protected void onStop()
    {
        super.onStop();
        simulator.stop_simu();
        this.finish();
    }

    private class btn_listener implements OnClickListener …
Run Code Online (Sandbox Code Playgroud)

camera android robot surfaceview surfaceholder

12
推荐指数
1
解决办法
1万
查看次数

Handler.postDelayed(Runnable)vs CountdownTimer

有时我们需要在代码运行之前延迟它.

这是可以通过Handler.postDelayed(Runnable)CountdownTimer.

哪一个在性能方面更好?

请参阅下面的示例代码

处理器

        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                 //DO SOMETHING
            }
        }, 1000);
Run Code Online (Sandbox Code Playgroud)

倒计时器

        new CountDownTimer(1000, 1000) {
            public void onFinish() {
                 //DO SOMETHING
            }
            public void onTick(long millisUntilFinished) {}
        }.start();
Run Code Online (Sandbox Code Playgroud)

performance android countdowntimer android-handler

8
推荐指数
2
解决办法
5464
查看次数

在方法Java中延迟执行代码

我希望在我的java(Android)程序中每2秒钟后连续生成一个随机数至少10分钟.但我只想暂停/延迟只在一种方法中执行代码而不是整个程序.

我试过像这样使用Thread -

boolean stop = false;
int random_number = 0;

while(true){
    if(stop){  //if stop becomes true, then
        return;  //terminate the method
    }

    random_number = Math.random(); //generate random number
                                   //which is used bu some other
                                   //part of code
    try {
        Thread.sleep(2000);        //delay the code for 2 secs
    } catch(InterruptedException ex) {  //and handle the exceptions
        Thread.currentThread().interrupt();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用 Thread.sleep停止整个程序执行而只是停止执行代码内部方法,我的整个屏幕变为空白.

我也试过使用,Handler但它不起作用,因为它不会停止我的方法中的代码执行,而只是堆叠.

这将证明它的工作更好 -

while(true){
    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() …
Run Code Online (Sandbox Code Playgroud)

java android delay jdk1.6

6
推荐指数
3
解决办法
2万
查看次数

如何在android中延迟秒?

我想延迟几秒钟并显示 Toast,我尝试 SystemClock.sleep

但它只显示最后一条消息(“10s”)...

Toast.makeText(MainActivity.this,"1s", Toast.LENGTH_SHORT).show();
SystemClock.sleep(5000);
Toast.makeText(MainActivity.this,"5s", Toast.LENGTH_SHORT).show();
SystemClock.sleep(5000);
Toast.makeText(MainActivity.this,"10s", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

那应该是按顺序显示1s、5s、10s吧?

我也参考了这个做法,但是无法实现... android中如何设置延迟?

那么问题出在哪里呢?

android delay system-clock

-3
推荐指数
1
解决办法
2157
查看次数