こんにちは、お時間とご関心をお寄せいただきありがとうございます。私は実際にAndroidアプリの構築についてよくわからない2つの質問があります。私が信じているかなり基本的なもの:
1) 私のアプリは、たとえば AngryBirds のように、完全に水平モードになっています。それが始まると、ユーザーは電話をそのように持つ必要があることを理解します。そして、それはすべてのアクティビティのマニフェストで設定され、正常に機能します。しかし、物理デバイスが傾いて onCreate を再度呼び出すのを防ぐ方法はありますか? メソッドなどをオーバーライドできますか?私が尋ねている理由は、クリックした後に画像を変更するいくつかの ButtonViews があるためです。これらの ImageButton の配列を保存するために onRetainNonConfigurationInstance() を使用しています。また、ImageButton の setTag() および getTag() メソッドで変更されたものをマークすることもできるため、デバイスの傾きのために onCreate が呼び出されると、getLastNonConfigurationInstance から保存された配列が取得されます。 () 、しかし、私はかなり長い間それを機能させようとしてきました。正しく理解してください。デバイスが傾いた後(実際にはエミュレータを使用しているのでCtrl + F11ですが、デバイスでも発生すると思います)、すべてのImageButtonsが写真を失います..簡単に言えば、これを行うより良い方法はありますかチルトが何かをすることをお勧めできますか、それを妨げていますか?
2) ユーザーが画面に何秒滞在しているかを知る最良の方法は何ですか? SystemClock.currentThreadTimeMillis() を介して取得した 2 つの long を次のように使用しようとしました: 開始時刻 onCreate を取得し、呼び出すメソッドの終了時刻を取得して、startActivity の直前に 2 番目のインテントに移動します。しかし、それらは異なるスレッドから呼び出されるため、終点-開始点が正しくないと思います。SystemClock.currentThreadTimeMillis() の両方のメソッドが、ストップウォッチしているアクティビティのメインスレッドである同じスレッドから呼び出されるようにする方法は何ですか? これを回避するより良い方法はありますか?
再度、感謝します。