Почему я вижу только "первый" тост, а не другие (должен быть) из моего потока?
public class BannerExample extends Activity {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast toast = Toast.makeText(this, "first toast", Toast.LENGTH_SHORT);
toast.show();
new MyThread(this).start();
}
class MyThread extends Thread {
private Context context;
public MyThread(Context context) {
this.context = context;
}
public void run() {
Looper.prepare(); // An exception told me to add this - i have no clue why
for (int i = 0; i < 3; i++) {
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Toast toast = Toast.makeText(context, i + "whoho", Toast.LENGTH_SHORT);
toast.show();
}
}
}
}
Looper.prepare
. Вы получали исключение, потому что вы делали что-то не так:Thread
на AsyncTask
и использовать метод onProgressUpdate
для создания ваших тостов, поскольку это автоматически запускается в потоке пользовательского интерфейса. В противном случае вам нужно будет использовать обработчик.getBaseContext
, а не контекст из текущей активности в ваш конструктор