Может ли приложение для Android обнаружить изменение ориентации во время работы в фоновом режиме? - PullRequest
0 голосов
/ 19 июня 2019

У меня небольшой вопрос как в теме.Может ли приложение для Android, работающее в фоновом режиме, обнаружить изменение ориентации экрана?У меня есть этот код

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
            System.out.println("landscape");
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
            Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
            System.out.println("portrait");
        }
    }

}

из документов Android, но он не работает, когда, например, кто-то нажал кнопку домой.

1 Ответ

0 голосов
/ 19 июня 2019

Создание службы Android, регистрация приемника вещания для изменений конфигурации и обработка изменений ориентации внутри. https://developer.android.com/training/run-background-service/create-service

val filter = IntentFilter().apply {
addAction(android.intent.action.CONFIGURATION_CHANGED)
} 
this.registerReceiver(broadcastReceiver, filter)
...