【发布时间】:2011-11-01 11:01:52
【问题描述】:
我有一个应用程序,我在其中收到一条包含他位置的短信。收到短信后,它会调用另一个活动来启动并将该位置传递给该活动以将其绘制在地图上。在调用第二个活动之前,它会显示一个像屏幕上的通知一样吐司,但是由于调用第二个活动而导致吐司没有出现。我的问题是我们如何才能延迟从该活动中调用第二个活动?
【问题讨论】:
标签: android google-maps android-activity gps
我有一个应用程序,我在其中收到一条包含他位置的短信。收到短信后,它会调用另一个活动来启动并将该位置传递给该活动以将其绘制在地图上。在调用第二个活动之前,它会显示一个像屏幕上的通知一样吐司,但是由于调用第二个活动而导致吐司没有出现。我的问题是我们如何才能延迟从该活动中调用第二个活动?
【问题讨论】:
标签: android google-maps android-activity gps
你可以这样使用:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i=new Intent(SearxhJobs.this,JobsTypes.class);
startActivity(i);
}
}, 5000);
在这里它等待最多 5 秒以启动活动。
希望对你有帮助
【讨论】:
您可以像这样使用Handler 来做到这一点
Handler h = new Handler(){
@Override
public void handleMessage(Message msg) {
Intent i = new Intent().setClass(ctx, MainActivity.class);
startActivity(i);
}
};
h.sendEmptyMessageDelayed(0, 1500); // 1500 is time in miliseconds
【讨论】:
在 doInBackground() 方法中创建一个执行 Thread.sleep() 的 AsyncClass,然后在 onPostExecute() 方法中导航到您的新活动。
调用您的 toast 消息,然后执行 AsyncClass。
【讨论】:
对于 Kotlin
Handler().postDelayed({
val i = Intent(this, MainActivity::class.java)
startActivity(i)
}, 5000)
【讨论】:
Handler().postDelayed({ startActivity(Intent(this, MainActivity::class.java)) }, 3000)
试试:
Runnable r = new Runnable() {
@Override
public void run() {
// if you are redirecting from a fragment then use getActivity() as the context.
startActivity(new Intent(SplashActivity.this, MainActivity.class));
// To close the CurrentActitity, r.g. SpalshActivity
finish();
}
};
Handler h = new Handler();
// The Runnable will be executed after the given delay time
h.postDelayed(r, 1500); // will be delayed for 1.5 seconds
【讨论】:
只需设置布局!
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
setContentView(R.layout.next); //where <next> is you target activity :)
}
}, 5000);
【讨论】:
一个例子如下:
Handler TimeDelay=new Handler();
if(previous=="geofence"){
tts.speak(previous,TextToSpeech.QUEUE_ADD,null, null);
Runnable r = new Runnable() {
@Override
public void run() {
/*
Intent intent = new Intent(
MyBroadcastMessageReceiver.class.getName());
intent.putExtra("some additional data", choice);
someActivity.sendBroadcast(intent);*/
tts.speak(previous,TextToSpeech.QUEUE_ADD,null, null);
}
};
TimeDelay.postDelayed(r, 150000);
【讨论】: