1. ホーム
  2. android

[解決済み] Androidで現在のアクティビティを終了させる方法

2022-02-10 07:21:20

質問

Androidのアプリケーションを持っています。 プログレスバー付きのローディング画面を作っています。

onCreateメソッドにdelayを入力しました。 タイマーが終了したら、現在のアクティビティを終了して、新しいアクティビティを開始したいと思います。

を呼び出すと、例外が発生するだけです。 finish() メソッドを使用します。

public class LoadingScreen extends Activity{
    private LoadingScreen loadingScreen;
    Intent i = new Intent(this, HomeScreen.class);
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.loading);

        CountDownTimer timer = new CountDownTimer(10000, 1000) //10 second Timer
        {
            public void onTick(long l) 
            {

            }

            @Override
            public void onFinish() 
            {
                loadingScreen.finishActivity(0);
                startActivity(i);
            };
        }.start();
    }
}

プログレスバーが終了した時点で終了するようにコードを変更するにはどうすればよいですか?

どのように解決するのですか?

ローディング画面であれば、アクティビティスタックに保持しないようにパラメータを設定すればよい。manifest.xmlで、アクティビティを定義してください。

<activity android:name=".LoadingScreen" android:noHistory="true" ... />

そして、あなたのコードでは、もう .finish() を呼び出す必要はありません。startActivity(i)を実行するだけです。

また、現在のアクティビティのインスタンスを別のフィールドに保持する必要もありません。次のように、いつでもアクセスできます。 LoadingScreen.this.doSomething() の代わりに private LoadingScreen loadingScreen;