попробуйте это:
public class LessonsShell extends Activity{
private static final int MESSAGE_SHOW_POPUP=7;
private static final long TIME_DELAY=3000;//3 seconds
private View view;
private Handler handler=new Handler(){
handleMessage(Message msg){
switch(msg.what){
case MESSAGE_SHOW_POPUP:
view();
break;
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.lessons);
//this will send a message to the handler to display the popup after 3 seconds.
handler.sendEmptyMessageDelayed(MESSAGE_SHOW_POPUP,TIME_DELAY);
}
private void view() {
// TODO Auto-generated method stub
ViewGroup parent = (ViewGroup) findViewById(R.id.lessons_bg);
view = LayoutInflater.from(getBaseContext()).inflate(R.layout.lessons_dialog, null);
parent.addView(view);
}
}
Обработчик - хорошая замена для таймера в Android.
То, что вы ранее делали, - это создавали фоновый поток в onCreate, пытаясь получить доступ к потоку пользовательского интерфейса оттуда. По моему опыту, это должно привести к сбою, поскольку вы не можете получить доступ к потоку пользовательского интерфейса из фонового потока.