Java Android如何在方法之间有延迟地多次调用方法

Java Android如何在方法之间有延迟地多次调用方法,java,android,performance,timer,runnable,Java,Android,Performance,Timer,Runnable,我想问一下,是否有更好的方法可以多次调用一个方法,每次调用之间有5秒的延迟 但是我真正想要的是调用Toas()方法大约7次,而下面的代码看起来并不正确 谢谢各位 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... CallMultipleToast(); ........ private void CallM

我想问一下,是否有更好的方法可以多次调用一个方法,每次调用之间有5秒的延迟

但是我真正想要的是调用Toas()方法大约7次,而下面的代码看起来并不正确

谢谢各位

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...

CallMultipleToast();


........



    private void CallMultipleToast(){

             Runnable call_1 = new Runnable() {
                 @Override
                 public void run() {
                     Toast("Message one");


                         Runnable call_2 = new Runnable() {
                             @Override
                             public void run() {
                                 Toast("Message two");


                                     Runnable call_3 = new Runnable() {
                                         @Override
                                         public void run() {
                                             Toast("Message three");
                                             //CAN I ADD MORE
                                         }
                                     };//end call_3
                                     new Handler().postDelayed(call_3, 5000);


                             }
                         };//end call_2
                         new Handler().postDelayed(call_2, 5000);

                 }
             };//end call_1
             new Handler().postDelayed(call_1, 5000);


    }





    private void Toast(String message){
        Toast.makeText(this, message, Toast.LENGTH_LONG).show();
    }

也许你可以这样做:

private void CallMultipleToast(){
  Thread t = new Thread(){
        @Override
        public void run(){
            try {
                for(i=0;i<7;i++){
                   Toast("Message "+(i+1));
                   sleep(5000);
                }

            } catch (InterruptedException ex) {
                Log.i("error","thread");
            }
        }
    };
   t.start();
 }
private void CallMultipleToast(){
线程t=新线程(){
@凌驾
公开募捐{
试一试{

对于(i=0;i也许你可以这样做:

private void CallMultipleToast(){
  Thread t = new Thread(){
        @Override
        public void run(){
            try {
                for(i=0;i<7;i++){
                   Toast("Message "+(i+1));
                   sleep(5000);
                }

            } catch (InterruptedException ex) {
                Log.i("error","thread");
            }
        }
    };
   t.start();
 }
private void CallMultipleToast(){
线程t=新线程(){
@凌驾
公开募捐{
试一试{
对于(i=0;i试试这个:

final int DELAY= 5000;
int count = 0;
String[] msgs = {"one", "two", "three", "four", "five"};
Handler handler = new Handler();
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        if (count < 5) {
            Toast(msgs[count]);
            handler.post(runnable);
        }
        count++;
    }
};

handler.postDelayed(runnable, DELAY);
final int DELAY=5000;
整数计数=0;
字符串[]msgs={“一”、“二”、“三”、“四”、“五”};
Handler=newhandler();
Runnable Runnable=新的Runnable(){
@凌驾
公开募捐{
如果(计数小于5){
吐司(msgs[计数]);
handler.post(可运行);
}
计数++;
}
};
handler.postDelayed(可运行,延迟);
试试这个:

final int DELAY= 5000;
int count = 0;
String[] msgs = {"one", "two", "three", "four", "five"};
Handler handler = new Handler();
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        if (count < 5) {
            Toast(msgs[count]);
            handler.post(runnable);
        }
        count++;
    }
};

handler.postDelayed(runnable, DELAY);
final int DELAY=5000;
整数计数=0;
字符串[]msgs={“一”、“二”、“三”、“四”、“五”};
Handler=newhandler();
Runnable Runnable=新的Runnable(){
@凌驾
公开募捐{
如果(计数小于5){
吐司(msgs[计数]);
handler.post(可运行);
}
计数++;
}
};
handler.postDelayed(可运行,延迟);

您希望有什么特定的用例场景?无需嵌套可运行程序或有多个处理程序。一个处理程序就足够了。如果所有可运行程序都显示toast,只需创建一个子类,将消息作为构造函数中的参数。感谢各位的建议您希望有什么特定的用例场景有这个吗?不需要嵌套可运行程序或有多个处理程序。一个处理程序就足够了。如果所有可运行程序都显示toast,只需创建一个子类,将消息作为构造函数中的参数。谢谢大家的建议