2013-05-01 134 views
1

此時我嘗試創建Android TV應用程序。如何在特定時間後致電另一個活動

例如,我有3個活動。我想在10秒後再打另一個活動。我如何使用Android C#創建這個?

Activity 1 
---------- (after 10 sec) -> 
Activity 2 
---------- (after 10 sec) -> 
Activity 3 
---------- (after 10 sec) -> AGAIN to Activity 1 

解決此問題的最佳方法是什麼?

+0

只需使用計時器? – 2013-05-01 07:13:27

+0

你有一些在Android C#中使用Timer的例子嗎? – lukso 2013-05-01 07:40:25

+0

使用處理程序,你可以做到這一點,但在覈心機器人。 – 2013-05-01 07:46:21

回答

2

我已經找到了一個解決方案之後。你必須使用線程。

new Thread(new ThreadStart(() => 
           { 
     Thread.Sleep(10000); 
     RunOnUiThread(() => 
         { 
      Intent i = new Intent(); 
      i.SetClass(this, typeof(Activity2)); 
      StartActivity(i); 

      this.Finish(); 
     }); 


     })).Start(); 
0

您可以使用AlaramManager設置何時調用活動的時間。

Intent intentA=new Intent(context, A.class); 

pendingIntent=PendingIntent.getBroadcast(this, 0, intentA, 0); 

alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE); 

alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,0,3000, pendingIntent); 


Intent intentB=new Intent(context, B.class); 

pendingIntent=PendingIntent.getBroadcast(this, 0, intentB, 0); 

alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE); 

alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,1000,3000, pendingIntent); 


Intent intentC=new Intent(context, C.class); 

pendingIntent=PendingIntent.getBroadcast(this, 0, intentC, 0); 

alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE); 

alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,2000,3000, pendingIntent); 

我還沒有嘗試過,但我認爲它會做很少的修改。

+0

不幸的是,我正在尋找C#解決方案。 :( – lukso 2013-05-01 08:07:06

0

使用沒有處理程序來實現this.Here這個活動開始2秒

 Handler handler = new Handler(); 
       Runnable r=new Runnable() { 
         @Override 
         public void run() { 
          startActivity(new intent(xxx.this,yyy.class); 
         }   
         }; 
        handler.postDelayed(r, 2000); 
+0

不幸的是,我正在尋找C#解決方案。:( – lukso 2013-05-01 08:07:29

相關問題