2015-01-16 93 views
2

你如何開始一個活動幾秒鐘,然後開始另一項活動。 我嘗試這個代碼,當我嘗試的應用程序,它直接開始我的MainActivity:Android studio活動

Thread timer=new Thread() { 
     public void run() { 

      try { 

       sleep(5000); 

      } catch (InterruptedException e) { 

       e.printStackTrace(); 

      } finally { 

      } 
      Intent intent = new Intent("app.my.com.newapp.MAINACTIVITY"); 
      startActivity(intent); 

     } 
    }; 
timer.start(); 

而且這裏的我的清單文件。

<?xml version="1.0" encoding="utf-8"?> 

<supports-screens 
    android:anyDensity="true" 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:resizeable="true" 
    android:smallScreens="true" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/danger" 
    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=".Introduction" 
     android:label="@string/title_activity_introduction"> 
    <intent-filter> 
     <action android:name="app.my.com.newapp.MAINACTIVITY"/> 
     <category android:name="android.intent.category.DEFAULT"/> 


    </intent-filter> 

    </activity> 
</application> 

請幫我!

+0

你的意思你想創建啓動畫面? –

+0

是的,我想做一個啓動畫面 – AppGeek

+0

請參考給定的答案。 –

回答

0

使用下面的代碼來創建啓動畫面。

public class SplashActivity extends Activity { 
// Splash screen timer 
private static int SPLASH_TIME_OUT = 1000; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_splash_layout); 
    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      Intent i = new Intent(SplashActivity.this, LoginScreenActivity.class); 
      startActivity(i); 

      // close this activity 
      finish(); 
     } 
    },SPLASH_TIME_OUT); 
} 

}

+0

非常感謝!有效 – AppGeek

0

您需要修改您的清單,看看你的第一個活動,你的發射活動應該是介紹和其他activity標籤將定義您的MainActivity。 看來你想創建一個splashscreen,這裏是一個link

這可能會幫助你。

0

將您的活動名稱重命名爲另一個,並將timer線程代碼寫入onStart()Introduction活動。那麼所有人都會按照你的意願去做。

0

我們可以將Handler連接到我們的活動並通過Handler發佈Runnable。

public class MyActivity extends Activity { 
    private final Handler mHandler = new Handler(); 

    private Runnable timedLaunch = new Runnable() { 
     public void run() { 
      // call the intent from here 
     } 
    }; 

    /** Called when the activity is first created. */ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     .... 
     // launch after 5 seconds 
     mHandler.postDelayed(timedLaunch , 5000); 
    } 


    // be sure to remove the callback in case the user leaves the activity before the the given number of seconds have passed 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     mHandler.removeCallbacks(mTask); 
    } 
} 

或者,我們可以使用一個TimerTask(java.util.TimerTask中)是這樣的:

class MyTimerTask extends TimerTask { 

    @Override 
    public void run() { 
    // launching code goes here 
    } 

} 

然後創建計時器被安排在給定的延遲:

MyTimerTask myTimerTask = new MyTimerTask(); 
java.util.Timer timer = new java.util.Timer(); 

// runs after 5 seconds 
timer.schedule(myTimerTask, 5000);