Androidアプリはバックグラウンドで実行されるため、向きが変わると直ちに通知する必要があります。例えば。ユーザーが携帯電話を縦向きから横向き(または横向きから縦向き)に回転させると、システムは自分のアプリに向きが変わったことを伝える必要があります。オリエンテーションの変更にリスナーを登録する方法は?
ありがとうございました。
Androidアプリはバックグラウンドで実行されるため、向きが変わると直ちに通知する必要があります。例えば。ユーザーが携帯電話を縦向きから横向き(または横向きから縦向き)に回転させると、システムは自分のアプリに向きが変わったことを伝える必要があります。オリエンテーションの変更にリスナーを登録する方法は?
ありがとうございました。
画面では、明示的にオリエンテーションリスナーを設定する必要はありません
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//Do stuff here
}
を回転させたときに、このメソッドが呼び出されます。
onConfigurationChanged
がシステムによって呼び出されます。
@Override
public void onConfigurationChanged(Configuration myConfig) {
super.onConfigurationChanged(myConfig);
int orient = getResources().getConfiguration().orientation;
switch(orient) {
case Configuration.ORIENTATION_LANDSCAPE:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
case Configuration.ORIENTATION_PORTRAIT:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
break;
default:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
}
ただし、onConfigurationChangedはデーモンで実装できます。 ここに:Service。
私のアプリが起動していない場合、このメソッドは呼び出されますか?私が本当に必要とするのは、向きが変わったときに私のアプリが目を覚ます(または起動する)ことです。 –
[こちら](http://developer.android.com/reference/android/app/Activity.html#onConfigurationChanged(android.content.res.Configuration))と[this] com/guide/topics/resources/runtime-changes.html) – Rafiq
私は質問を投稿する前にこれらを読んでいます。彼らは、 "あなたの活動が実行されている間にデバイスの設定が変更されたときに、システムによって呼び出されます。"したがって、私のアプリケーションが実行されていない場合、メソッドは呼び出されません。私のための解決策はありますか? –