0

2番目のアクティビティを自動的にロードするストーリーラインを作成しました。スキップボタンを押すと、適切なアクティビティにジャンプします。その後、突然、ストーリーラインに戻り、ストーリーの最後までストーリーラインの活動を続けます。これが私のコードです。親切に修正または確認してください。どうもありがとう。

public class pgone extends Activity {

    private long splashDelay = 4000; 


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pgone);

        TimerTask task = new TimerTask()
        {

            public void run() {

                Intent mainIntent = new Intent().setClass(pgone.this, pgtwo.class);
                startActivity(mainIntent);
                finish();
            }

        };

        Timer timer = new Timer();
        timer.schedule(task, splashDelay);

Button skipButton = (Button)findViewById(R.id.skip);
skipButton.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        Intent skipIntent = new Intent(pgone.this,gamelevel.class);
        startActivity(skipIntent);
        finish();


    }
});
    }
@override
public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_BACK)
        {
            moveTaskToBack(true);
            finish();
            return true; // return
        }

        return false;
}
}
4

1 に答える 1

1

新しいアクティビティを呼び出した後、タイマーを停止していません。TimerTaskはバックグラウンドプロセスであるため、バックグラウンドで実行され続けるため、キャンセルする必要があります。

スキップボタンリスナーでこのメソッドを使用してみてください。

Timer timer = new Timer();
timer.schedule(task, splashDelay);

Button skipButton = (Button)findViewById(R.id.skip);
skipButton.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        Intent skipIntent = new Intent(pgone.this,gamelevel.class);
        startActivity(skipIntent);
        finish();
        timer.cancel();
        timer.purge();
    }
});
于 2012-07-21T04:31:18.900 に答える