web-dev-qa-db-fra.com

Comment retarder l'appel d'une activité à partir d'une autre activité?

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é?

14
dark_shadow

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

47
Udaykiran

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
7
Mats Hofman

Pour Kotlin

 Handler().postDelayed({
            val i = Intent(this, MainActivity::class.Java)
            startActivity(i)
        }, 5000)
2
kuzdu

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.

2
NotACleverMan

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
1
Hasan A Yousef

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);
0
Nick B

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);
0
Mubi Ali