1. ホーム
  2. android

[解決済み] Androidです。アクティビティでの方向転換の一時的な無効化

2022-08-16 09:57:54

質問

私のメインアクティビティには、中断されるべきではないいくつかのデータベース変更を行うコードがあります。私は別のスレッドで重い作業を行い、キャンセルできないように設定した進行状況ダイアログを使用しています。しかし、携帯電話を回転させると、アクティビティが再起動され、実行中のプロセスにとって非常に悪い状態になり、強制終了が発生することに気づきました。

私がしたいことは、プロセスが完了するまで、画面の向きの変更をプログラム的に無効にし、その時点で向きの変更を有効にすることです。

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

クリスが彼の 自己回答 を呼び出すと

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

で、次に

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

は本当に魅力的なように動作します...実際のデバイスで !

エミュレータでのテストでは、ctrl+F11のショートカットはセンサーの動きをエミュレートしなくても常に画面の向きを変えるので、壊れているとは思わないでください。

編集: これは最良の答えではありませんでした。コメントで説明されているように、この方法には問題があります。 本当の答えはここにあります .