如何在一定时间后调用另一个活动

时间:2013-05-01 07:11:40

标签: c# android xamarin

此时我尝试创建一个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

解决这个问题的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

我找到了解决方法。你必须使用线程。

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

          this.Finish();
        });


      })).Start();   

答案 1 :(得分:0)

您可以使用AlarmManager设置活动时间。

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);

我没有尝试过,但我认为它几乎不会有任何修改。

答案 2 :(得分:0)

使用no of Handlers来实现此目的。这个活动在2秒后开始

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