AndroidがonDestroyメソッドを呼び出す前に画面の向きを検出する方法を知っている人はいますか? onDestroyメソッドが呼び出されたときにキャンセルする必要のあるアクティビティに非同期タスクがあります。画面の向きが変更されたときに非同期タスクをキャンセルしたくないです。Androidの画面の向きを検出する方法
答えて
を試してみてください。画面の向きが変わると、AndroidはonDestroy
メソッドの前にonRetainNonConfigurationInstance()
メソッドを呼び出します。ブール変数を定義して、画面の向きを変更するためのフラグとして機能させることができます。この変数は、onRetainNonConfigurationInstance()
メソッドが呼び出されたときにtrueに設定されます。
私はそうは考えていません。しかし、私は間違っているかもしれません。とにかく、android:configChangesとonConfigurationChanged APIを見てください。それは助けになるかもしれません。
また、onDestroyメソッドで非同期タスクをキャンセルしないでください。
onStopの実行中に呼び出されるAPIがあります。 isChangingConfigurationsを参照してください。 ConfigChanges:あなたがマニフェストアンドロイドに追加する必要が
int width, height;
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
アンドロイドであるAPIバージョン11にする必要があります。これはあなたのアクティビティを再作成することはありませんが、onConfigurationChanged()メソッドをオーバーライドすることによって、変更された場合は新しいオリエンテーションのすべてのリソースを手動で適用する必要があります。現在の方向と、設定中に変更できる追加のパラメータについての情報も表示されます。
ありがとう、今のところ必要なのは: 'int width、height; DisplayMetrics displaymetrics = new DisplayMetrics(); getWindowManager()。getDefaultDisplay()。getMetrics(displaymetrics); 高さ= displaymetrics.heightPixels; width = displaymetrics.widthPixels; 戻り値>幅; ' –
:それはこれを試してみてください3.0
は、私はそれが正しいかどうか確認してください解決策を見つけ出すために管理ではなく、この
public int getscrOrientation()
{
Display getOrient = getWindowManager().getDefaultDisplay();
int orientation = getOrient.getOrientation();
// Sometimes you may get undefined orientation Value is 0
// simple logic solves the problem compare the screen
// X,Y Co-ordinates and determine the Orientation in such cases
if(orientation==Configuration.ORIENTATION_UNDEFINED){
Configuration config = getResources().getConfiguration();
orientation = config.orientation;
if(orientation==Configuration.ORIENTATION_UNDEFINED){
//if height and widht of screen are equal then
// it is square orientation
if(getOrient.getWidth()==getOrient.getHeight()){
orientation = Configuration.ORIENTATION_SQUARE;
}else{ //if widht is less than height than it is portrait
if(getOrient.getWidth() < getOrient.getHeight()){
orientation = Configuration.ORIENTATION_PORTRAIT;
}else{ // if it is not any of the above it will defineitly be landscape
orientation = Configuration.ORIENTATION_LANDSCAPE;
}
}
}
}
return orientation; // return value 1 is portrait and 2 is Landscape Mode
}
- 1. Android 2.2以降で画面の向きを検出する
- 2. Androidの画面の向き
- 3. Androidデバイスの画面の向きをグローバルにロックする方法
- 4. Android/iPhoneウェブアプリの画面の向きを制御する方法
- 5. Android画面の向き:横向き
- 6. iPhoneの画面の向きを検出する
- 7. OnPause()の画面の向きの変化を検出します。
- 8. Android:電子インク画面を検出する方法は?
- 9. Android - ハンドルの画面の向き
- 10. 画面の向き
- 11. Android App一時的に画面の向きを回転させる方法
- 12. Androidで没入型モードの画面変更を検出する方法
- 13. iphoneカメラ:カメラの画面上のオブジェクトの動きを検出する方法は?
- 14. モバイルデバイスの画面解像度を検出する方法は?
- 15. 画面の変化を検出する方法は?
- 16. モバイルウェブブラウザとその画面サイズを検出する方法
- 17. 画面の向きを変更する - Android 3.2 on VirtualBox
- 18. Android - 画面の向きを変更する
- 19. 移動方向に対する電話の向きを検出する方法
- 20. iOS Beginner:画面の向き
- 21. 画面の向きios
- 22. フリーズ画面の向き
- 23. 大画面の向きを向きに設定する
- 24. アンドロイドの壁紙の向きを検出する方法
- 25. Android画面の向きのデータが失われる
- 26. vb.netの画面キャプチャを検出する
- 27. JavaScriptでデバイスの向きを検出する方法は?
- 28. iphone向きを検出する最良の方法
- 29. iPhone SDKでPDF文書の向きを検出する方法
- 30. Android、画面の向きが変わると、アプリはフリーズ
ユーザーが画面を終了するかアプリケーションを終了したときにAsyncTaskをキャンセルしますが、画面がフォアグラウンドのままであるため画面の向きが変更された後では、AsyncTaskをキャンセルします。 – kenn3th