29

(stackoverflowについても同様の質問がありますが、正解はなく、問題のコンテキストも少し異なります。)

"java.lang.RuntimeException:再開されないアクティビティの一時停止を実行しています"

私はゲームアプリケーションを開発しています(通常のビューとGLSurfaceViewの両方を使用します)。電話の表示を非常に速くオン/オフすると、この例外が発生することがありますが(ActivityThreadによってスローされます)、例外の後、アプリケーションは正常に実行されます。私のアプリは横向きのアプリであり、これはマニフェストでも正しく設定されています(方向と構成の変更も含まれます)。

これでいい?

これは、ActivityThreadによってアプリケーションのアプリケーション名でスローされたRuntimeExceptionですが、アプリを終了しません。

4

2 に答える 2

54

私はactivity.recreate()(または.finish()と.startActivity()を呼び出していたので、この問題が発生しました-Androidのバージョンによって異なります)。もちろん、言語をリロードしたり、向きをリセットしたり、アクティビティのレクリエーションでしかできない同様のことをしたいので、これらの関数を呼び出すだけです。

ただし、onResume()からこれらの関数(.finish()または.recreate())を呼び出すことはできません。そうした場合、前述の致命的ではない例外が発生します。

.recreate()呼び出しを1ミリ秒遅らせることで問題を「解決」し、アクティビティが適切に再開されてから強制終了されるようにしました。

  Handler handler = new Handler();
  handler.postDelayed(new Runnable()
  {
    @Override
    public void run()
    {
      log.i("TX.refresh", "Switching to %s from %s", lang, lang);
      if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
      {
        ctx.finish();
        ctx.startActivity(ctx.getIntent());
      } else ctx.recreate();
    }
  }, 1);
于 2013-02-04T06:30:45.850 に答える
0

マニフェストファイルでこのコードを使用してください

<activity
    android:name=".YourActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:screenOrientation="portrait" >
</activity>
于 2021-11-16T13:41:59.893 に答える