it-swarm.com.de

Wie kann ich den Aufruf einer Aktivität von einer anderen Aktivität verzögern?

Ich habe eine Anwendung, in der ich eine SMS mit seinem Standort erhalte. Wenn ich eine SMS erhalte, ruft sie eine andere Aktivität zum Starten auf und übergibt diesen Standort an diese Aktivität, um sie auf der Karte darzustellen Auf dem Bildschirm wird jedoch aufgrund des Aufrufs der zweiten Aktivität ein Toast nicht angezeigt. Meine Frage ist, wie wir den Aufruf der zweiten Aktivität aus dieser Aktivität heraus verzögern können.

14
dark_shadow

Sie können so etwas verwenden:

 new Handler().postDelayed(new Runnable() {
                      @Override
                      public void run() {

                          Intent i=new Intent(SearxhJobs.this,JobsTypes.class);
                          startActivity(i);
                      }
                  }, 5000);

Hier wartet es bis zu 5 Sekunden, um die Aktivität zu starten.

Ich hoffe es hilft

47
Udaykiran

Sie können dies mit einem Handlerwie diesem tun

    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

Für Kotlin

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

Erstellen Sie in der Methode doInBackground () eine AsyncClass, die Thread.sleep () ausführt, und navigieren Sie dann in der Methode your onPostExecute () zu Ihrer neuen Aktivität.

Rufen Sie Ihre Toastnachricht auf und führen Sie dann die AsyncClass aus.

2
NotACleverMan

Versuchen:

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

Ein Beispiel wäre das Folgende:

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

Einfach das Layout einstellen!

 new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {

            setContentView(R.layout.next); //where <next> is you target activity :)

            }
        }, 5000);
0
Mubi Ali