isRunning = true; timer = new Timer(); timer.schedule(new TimerTask(){ @Override public void run() { // TODO Auto-generated method stub while(isRunning){ toast.show(); } } }, 10); 如果想不用timer,可以启动一个service,然后这个service的handler中来显示toast。下面再给出一个例子。 import android.app.Service;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.IBinder;import android.util.Log;import android.widget.Toast;public class mService1 extends Service{ private Handler objHandler = new Handler(); private Toast _mToast = null; private int intCounter=0; private Runnable mTasks = new Runnable() { public void run() { intCounter++; Log.i("HIPPO", "Counter:"+Integer.toString(intCounter)); objHandler.postDelayed(mTasks, 1000); _mToast.show(); } }; @Override public void onStart(Intent intent, int startId) { Bundle mBundle = intent.getExtras(); Log.i("Test", "Recerve:"+ mBundle.getString("Test")); objHandler.postDelayed(mTasks, 1000); super.onStart(intent, startId); } @Override public void onCreate() { super.onCreate(); _mToast = Toast.makeText(this, "Service start", Toast.LENGTH_LONG); } @Override public IBinder onBind(Intent intent) { return null; } @Override public void onDestroy() { objHandler.removeCallbacks(mTasks); super.onDestroy(); } } 封装了Toast,并实现了Toast长期显示 public class MyToast {public static final int LENGTH_MAX = -1; // show until hide() function invokedboolean mCanceled = true;Handler mHandler;Context mContext;Toast mToast;public MyToast(Context context) {this(context, new Handler());}public MyToast(Context context, Handler h) {mContext = context;mHandler = h;mToast = Toast.makeText(mContext, "", Toast.LENGTH_SHORT);mToast.setGravity(Gravity.BOTTOM, 0, 0);}public void show(int resId, int duration) {mToast.setGravity(Gravity.TOP, 0, 0);mToast.setText(resId);if (duration != LENGTH_MAX) {mToast.setDuration(duration);mToast.show();} else if (mCanceled) {mToast.setDuration(Toast.LENGTH_LONG);mCanceled = false;showUntilCancel();}}public void show(String text, int duration) {mToast.setGravity(Gravity.TOP, 0, 0);mToast.setText(text);if (duration != LENGTH_MAX) {mToast.setDuration(duration);mToast.show();} else {if (mCanceled) {mToast.setDuration(Toast.LENGTH_LONG);mCanceled = false;showUntilCancel();}}}public void hide() {mToast.cancel();mCanceled = true;}public boolean isShowing() {return !mCanceled;}private void showUntilCancel() {if (mCanceled)return;mToast.show();mHandler.postDelayed(new Runnable() {public void run() {showUntilCancel();}}, 3000);}} MyToast mt = new MyToast(getApplicationContext());mt.show(R.string.front_hint, -1);