我希望在预设的不活动时间过后,通过intent
启动新活动。我使用下面粘贴的代码,但它仍然不起作用,它保持在同一个屏幕上。我知道这不是android-y的方法,但我很确定它应该可行(这对我来说更有意义)。另外,我可以使用它来制作类似文本视图,按钮或其他对象的内容,将其可见性从invisible
更改为visible
吗?我环顾四周,没有找到任何答案。提前谢谢。
public class Welcome extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
Thread thread = new Thread() {
@Override
public void run() {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
}
runOnUiThread(new Runnable() {
@Override
public void run() {
//do stuff
Intent myIntent = new Intent(Welcome.this,MainActivity.class);
Welcome.this.startActivity(myIntent);
overridePendingTransition(R.anim.push_up_in, R.anim.push_up_out);
}
});
}
};
答案 0 :(得分:1)
您可以使用处理程序执行此操作:
new Handler().postDelayed(<your runnable>, delayInMillis);
对于更新小部件,以这种方式执行它并不是一个好主意。如果延迟不是很大,你最好使用AsyncTask。
答案 1 :(得分:1)
您可以创建一个线程并使其在该时间间隔内休眠。在那之后,你的新意图将开始。
例如: -
Thread splashTread = new Thread() {
@Override
public void run() {
try {
int waited = 0;
while(_active && (waited < _splashTime)) {
sleep(100);
if(_active) {
waited += 100;
}
}
} catch(InterruptedException e) {
// do nothing
} finally {
finish();
Intent intent = new Intent(First_Intent.this,Second_Intent.class );
startActivity(intent);
}
}
};
splashTread.start();
}
答案 2 :(得分:0)
你可以试试这个......
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Do your thing......
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
}
}, 3000);