私の Android アプリは、ステート マシンのように一連のイベントを実行する必要があります。
イベント 1: ビデオ # 1 を再生
イベント 2: 画像を読み込み、ボタンが押されるのを待つ
イベント 3: ビデオ #2 を再生する
等...
1 つの方法は、イベントごとに個別のアクティビティを生成することですが、イベントが 20 を超えているため、もっと簡単な方法があると思いました。
そこで、ステート マシンを次のようにコーディングしました。
int mState = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//
switch(mState) {
case 0:
Boolean flag = videoIntent(url0);
break;
case 1:
flag = loadImage(img1);
}
}
public Boolean videoIntent(String video) {
mBundle.putString("url",video );
Intent myIntent = new Intent();
myIntent.putExtras(mBundle);
myIntent.setClass(mySM.this, SM_vPlayer.class);
startActivity(myIntent);
mState ++;
return true;
}
public Boolean loadImage(String image) {
//load image
mState ++;
return true;
}
質問: ビデオを再生するインテントを開始した後 (そのアクティビティには完了を待機するリスナーがあります)、finish() が呼び出されます。
finish() はどこで onCreate、onResume、または別のメソッドに戻りますか?
switch ステートメントに戻るにはどうすればよいですか?
これを行うより良い方法はありますか?