J'ai une application dans laquelle je reçois un sms contenant son emplacement. Lors de la réception d'un sms, il appelle une autre activité pour démarrer et transmet cet emplacement à cette activité pour la tracer sur la carte.Avant d'appeler la deuxième activité, il affiche un toast comme une notification Ma question est de savoir comment pouvons-nous retarder l’appel de la deuxième activité à partir de cette activité?
Vous pouvez utiliser quelque chose comme ceci:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i=new Intent(SearxhJobs.this,JobsTypes.class);
startActivity(i);
}
}, 5000);
Ici, il faut attendre 5 secondes pour lancer l’activité.
J'espère que ça aide
Vous pouvez le faire avec une Handler
comme ceci
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
Pour Kotlin
Handler().postDelayed({
val i = Intent(this, MainActivity::class.Java)
startActivity(i)
}, 5000)
Créez une classe Async qui exécute Thread.sleep () dans la méthode doInBackground (), puis accédez à votre nouvelle activité dans la méthode onPostExecute ().
Appelez votre message toast, puis exécutez AsyncClass.
Essayer:
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
Un exemple serait le suivant:
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);
Il suffit de définir la mise en page!
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
setContentView(R.layout.next); //where <next> is you target activity :)
}
}, 5000);