如何在Android中多次调用方法

时间:2014-09-25 08:52:12

标签: java android performance function methods

我想问一下,如果有更好的方法在android中多次调用方法。 但我真正想知道的是,如何延迟哪一次 showToas("Message 1"); 来电,只有在拨打下一个电话后才会延迟。

由于

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

    ...


    showToas("Message 1");
    showToas("Message 2");
    showToas("Message 3");
    showToas("Message 4");
    showToas("Message 5");
    showToas("Message 6");
    showToas("Message 7");
        ...


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

VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV

更新

这是我设法让它工作的地方。 给每个方法调用5秒休息,但我认为最好的方法是实现这个功能吗?你能告诉我吗?感谢

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);


}

4 个答案:

答案 0 :(得分:2)

试试这种方式

 Runnable r2=new Runnable() {
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                     showToas("Message 1");
                }
            };

new Handler().postDelayed(r2,1000);

为其他人做同样的事情并增加时间延迟

答案 1 :(得分:1)

您可以使用Timer

//global variable counter
int counter = 1;

Timer t = new Timer();
t.scheduleAtFixedRate(new TimerTask() {

    @Override
    public void run() {
        showToas("Message "+counter);
        counter++;
    }

}, 0, 10000);  //It will be repeated every 10 seconds

希望这有帮助。

答案 2 :(得分:0)

runOnUiThread(new Runnable() {
        public void run() {
            try {
                for(String str : array){
                    showToast(str);
                    Thread.sleep(10000L);
                }
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });

答案 3 :(得分:0)

public class ToastShow {
private Context context;
private Toast toast = null;
public ToastShow(Context context) {
     this.context = context;
}
public void toastShow(String text) {
    if(toast == null)
    {
        toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
    }
    else {
        toast.setText(text);
    }
    toast.show();
}

}

你可以多次调用toastShow(String text)它只改变toast的内容