如何为一个活动调用另一个活动提供时间限制。我想通过给定一些时间限制来调用另一个活动(Ex将A类调用到B类)。我使用了alarmManager,但我的应用程序也不可能使用线程,每当我给Thread.sleep它就不会执行动作直到睡眠结束。我不知道该怎么做这个过程。任何人都可以给出给时间限制的想法。
答案 0 :(得分:18)
您可以使用Timer并添加在特定延迟后执行的TimerTask。
这是一个或多或少完成的例子:
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
//here you can start your Activity B.
}
}, 10000);
上面的例子在10秒内执行一个新的TimerTask。在TimerTask中,您可以覆盖run方法。在run方法中,您可以开始新活动。在延迟之后执行run方法。在这个例子中,它是10'000毫秒。
答案 1 :(得分:9)
这是一个简单的解决方案。例如,这可用于显示1秒的启动活动,然后进入主应用程序:
public class Splash extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
int secondsDelayed = 1;
new Handler().postDelayed(new Runnable() {
public void run() {
startActivity(new Intent(Splash.this, ActivityB.class));
finish();
}
}, secondsDelayed * 1000);
}
}
答案 2 :(得分:1)
这也可以使用android CountDownTimer
类来完成。
请参阅此示例,延迟3秒。
new CountDownTimer(3000, 1000) {
public void onFinish() {
Intent startActivity = new Intent(ThisActivity.this,ActivityToStart.class);
startActivity(startActivity);
finish();
}
public void onTick(long millisUntilFinished) {
}
}.start();
您可能还需要在AndroidManifest.xml
文件
<activity
android:name=".ActivityToStart"
android:label="Back"
android:parentActivityName=".MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
答案 3 :(得分:1)
让我们希望以下示例可能有所帮助。
此处,我在MainActivity.java
MainPage.java
public class MainPage extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_page);
Handler handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(MainPage.this,MainActivity.class));
}
},2000L);
}
}