2014-06-28 111 views
-2

我目前正在開發一個應用程序,我想讓它在某段時間後(如開放活動)進行操作,例如5秒鐘。讓一個應用程序在某段時間後執行某些操作

我需要什麼代碼?

+0

你有什麼代碼_have_? – Idris

+0

使用CountDownTimer。 –

+0

對我來說這似乎是一個完全合理的問題。特別是因爲有幾個錯誤的答案! H8rs必須h8 ... ;-) –

回答

1
protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 
     rsong = MediaPlayer.create(Splash.this, R.raw.party); 
     rsong.start(); 
     Thread timer = new Thread(){ 
      public void run(){ 
       try { 
        sleep(5000); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } finally{ 
        Intent i = new Intent("com.example.myapp.MENU"); 
        startActivity(i); 
       } 

      } 
     }; 
     timer.start(); 
} 

試試這個。

此處意圖活動將您重定向到您要傳輸的新佈局。您還需要修改「Androidmanfiest.xml」

意向活動可以通過幾種不同的方式完成。

所以首先嚐試與線程。

+1

此代碼有一些瘋狂的錯誤。如果您在活動可見時旋轉屏幕,則會有多個線程開火意圖,並且您將泄漏一個活動的內存值 –

1

您需要AlarmManager:

Intent i = new Intent(this, YourServiceOrBroadcastReceiver.class); 
    PendingIntent pi 
     = PendingIntent.getService(this, INTENT_ID, i,PendingIntent.FLAG_UPDATE_CURRENT); 
    ((AlarmManager) getSystemService(Context.ALARM_SERVICE)) 
     .setInexactRepeating(
      AlarmManager.RTC, 
      System.currentTimeMillis() + 100, 
      POLL_INTERVAL, 
      pi); 
0

您可以使用一個處理程序,並創建一個不同的線程有延遲。假設你想在4秒後啓動一個意圖,使用這個:

Handler handler = new Handler(); 
         handler.postDelayed(new Runnable() { 

          public void run() { 

           Intent i = new Intent(Login.this, Home.class); 
           startActivity(i); 
          } 
         }, 4000); 
相關問題