2016-07-21 5 views
0

私は自分のlaucherアクティビティで30秒のタイマーを持っていて、30秒後にタイマーが終了したら私のアプリで「A」、「B」、「C」の3つのアクティビティ、つまり「A」、ユーザはアクティビティ「A」のボタンを押すとランチャーアクティビティにリダイレクトされ、再び30秒のタイマーが開始され、再びタイマーが終了すると、アクティビティ「B」にリダイレクトされ、ユーザがアクティビティ「B」のボタンを押すと、 hewはlaucherのアクティビティにリダイレクトされ、再び30秒のタイマーが開始され、同じプロセスユーザーがアクティビティ "C"に従います。アンドロイドで30秒のカウントダウンタイマーが終了するたびに、別のアクティビティを1つずつ表示する方法はありますか?

+0

タイマーの代わりに、ハンドラー –

+1

を使用する代わりに、アクティビティーの代わりにフラグメントを使用することをお勧めします。 1つのアクティビティと4つのフラグメントSplash、A、B、Cを使用して管理する方がよいでしょう。 –

+0

Kinldy私にコードサンプルを3つずつlauchに渡す – vishwas

答えて

0

ランチャーアクティビティでタイマーを起動し、startActivityForResultを使用してA、B、Cアクティビティを開始できます。

あなたのA、B、Cのアクティビティボタンをクリックするだけで、resultCodeを設定して終了します。

以下は簡単な例です。ボタンのクリック機能で

ランチャー活動

public class MainActivity extends AppCompatActivity { 

    Handler handler; 
    public static final int ACTIVITYA = 1; 
    public static final int ACTIVITYB = 2; 
    public static final int ACTIVITYC = 3; 
    private int resultCode = ACTIVITYA; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     handler = new Handler(); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       changeActivity(); 
      } 
     },3000); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     this.resultCode = resultCode; 

    } 

    private void changeActivity(){ 
     Intent intent; 
     switch (resultCode){ 
      case ACTIVITYA : 
       intent = new Intent(MainActivity.this , ActivityA.class); 
       break; 
      case ACTIVITYB: 
       intent = new Intent(MainActivity.this , ActivityB.class); 
       break; 
      case ACTIVITYC: 
       intent = new Intent(MainActivity.this , ActivityC.class); 
       break; 
     } 
     startActivityForResult(intent,0); 
    } 
} 

A、B、Cの活動

はアクティビティアクティビティをリダイレクトし、終了したいのresultCodeを設定します。

button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     ActivityA.this.setResult(MainActivity.ACTIVITYB); 
     finish(); 
     } 
    }); 
関連する問題