Timer geht nicht

Baxter Stockman

Neues Mitglied
Hallo,

Bin neu in Java und Android und haette mal ne Frage. Ich hab 2 activities, in der ersten wird die zweite aufgerufen, die nur fuer 5 Sekunden gezeigt werden soll und wieder zurueck zure ersten springen soll.

Mein Code fuer den 2. Bildschirm sieht so aus:

Java:
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;


public class Thankyou extends ActionBarActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.thankyou);

        Thread timer = new Thread(){
            public void run(){
                try{
                    sleep(5000);
                }catch (InterruptedException e){
                    e.printStackTrace();
                }finally{
                    Intent openMain = new Intent("android.intent.action.MAIN");
                    startActivity(openMain);

                }
            }
        };timer.start();


    }
}

Manifest sieht so aus

PHP:
 <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".Thankyou"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.THANKYOU" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

Nur wenn ich die app aufuehre startet er zwar die 2. activity aber bleibt dann dort und springt nicht zurueck. Was mach ich falsch?

Danke schon mal!


</application>
 
Activities lassen sich nur vom UI-Thread starten, du versuchst dies jedoch in einem anderen Thread zu tun.

Für sowas bieten sich die Handler von Android an, diese haben z.b. Methode um einen runnable verzögert aufzurufen.

Java:
Handler handler = new Handler();
Runnable r = new Runnable() {
	@Override
	public void run() {
		//star tactivity
	}
};
handler.postDelayed(r, 5000);
 
Wenn ich es richtig verstehe, willst du von Activity 2 zu Activity 1 zurück, oder? Wenn ja, ist ein erneutes Öffnen der Ersten eigentlich overkill und ein Aufruf von #finish() sollte genügen...
 

Zurück
Oben