1

デバイスを横向きから縦向きに、またはその逆に変更すると、onCreateメソッドが呼び出されることを知っています。それは私にとっていくつかの問題の原因となっています。

実行されるダウンロードを保持するデータベースがあるとします。DAO オブジェクトがこのデータをオブジェクトに変換し、Vector<DownloadTask>. これは で発生しAsyncTaskますdoInBackground()
onPostExecuteスプラッシュ スクリーンが新しいActivity.

向きの変更を処理する必要がある場合を除いて、これまでのところすべて問題ありません。
スプラッシュ スクリーンの後の新しいアクティビティTimerは、ダウンロードのスケジュールを担当する を開始します。これは で開始されonCreateます。DownloadTaskすべてが実装されているため、Runnableスレッドです。

ダウンロードが終了したり突然停止したりすると、スレッドはこれをスケジューラに伝え、同時に実行されるスレッドの数を減らすことになっています。これは、同時ダウンロード数を制限するためです。

では、タイミングが正しい (または間違っている) 場合、向きの変更と糸の仕上げが一緒に並んだ場合、 Timer はどうなりますか? null になりますか?

向きが変わると、変数はデフォルト値にリセットされますか?
また、向きの変更を防ぐにはどうすればよいですか?? 一部のゲームのように

4

1 に答える 1

2

向きが変わると、変数はデフォルト値にリセットされますか?

それらがレベル変数である場合、はい、毎回破棄されて再作成されるActivityため、デフォルト値に戻ります。Activityこれを回避するには、毎回変数を保存することもできますがfinish()、これがいつ発生するかわからないため、面倒になる可能性があります (ただし、これを回避する方法はあります)。manifest.xmlを追加して、これらの変更を処理するように指定することもできます。

android:configChanges="orientation" 

<activity>タグにmanifest。ドキュメントでは、彼らはこれを推奨していませんが、私は主に彼らのお尻をカバーすると思います. やっていますが、今のところ問題はありません。これによりActivity、 が破壊されなくなります。

また、向きの変更を防ぐにはどうすればよいですか??

manifest次のようなものを追加することで、これを行うこともできます

android:screenOrientation="portrait"

<activity>タグをつけてActivities頂きたい方へorientation

于 2013-08-16T01:33:43.203 に答える