# Timer geht nicht



## Baxter Stockman (2. Feb 2015)

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: 


```
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 


```
<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>


----------



## InfectedBytes (3. Feb 2015)

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.


```
Handler handler = new Handler();
Runnable r = new Runnable() {
	@Override
	public void run() {
		//star tactivity
	}
};
handler.postDelayed(r, 5000);
```


----------



## dzim (6. Feb 2015)

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...


----------

