android 应用程序可以在后台 运行 时检测到方向变化吗?

Can android app detect orientation change while running in the background?

我有一个像主题中的小问题。后台 运行 的 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 文档,但是当例如有人单击主页按钮时它不起作用。

创建一个 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)