我有两项活动。我想在固定时间从A到B。去B后我想回到A定时。我已经搜索过但无法理解从哪里开始。我应该使用thread
或timer
还是handler
。
我想了解以下代码:
Handler activityChanger = new Handler();
activityChanger.postDelayed(new Runnable(){
startActivity(new Intent(this,about.class));
}, 10000);
如果有人能给我一个例子,这将是一个很大的帮助。 我在下面添加了代码。
Thread switchToActivityB = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000);
Intent intent = new Intent(this, About.class);
startActivity(intent);
finish();
} catch (Exception e) {
}
}
});
switchToActivityB.start();
答案 0 :(得分:1)
放置代码的地方取决于您的想法。例如,如果你想在每次进入活动A时这样做(这意味着当你去B然后按回去,经过一段固定的时间它将再次回到活动B),你应该把代码在onResume()
方法中。
如果您只想这样做一次,只需将其放入onCreate()
方法
答案 1 :(得分:0)
您可以将上述代码放在第一个活动的onResume()中。类似地,在“about.java”onResume()中对活动名称进行少量修改时使用相同的代码。
答案 2 :(得分:0)
对于您所描述的内容,您应该使用onStart
或onResume
方法。如果将它放在onCreate
上,它将只运行一次,因为您的活动不会被破坏。
您可以使用您描述的任何选项。 StartActivity
Is a safe method, so you can call it from outside your UI Thread.
答案 3 :(得分:0)
Thread switchToActivityB = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000); // The fixed time in milli seconds
Intent intent = new Intent(activityA.this, activityB.class);
startActivity(intent);
finish();
} catch (Exception e) {
// Catch Exception
}
}
});
switchToActivityB.start();
在onCreate()方法
中将此代码添加到活动A.在onCreate()方法
中的活动B中执行相同的操作Thread switchToActivityA = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000); // The fixed time in milli seconds
Intent intent = new Intent(activityB.this, activityA.class);
startActivity(intent);
finish();
} catch (Exception e) {
// Catch Exception
}
}
});
switchToActivityA.start();