当app在后台并且用户在主屏幕android时,如何处理屏幕旋转

时间:2017-09-12 08:27:27

标签: android

我有一个场景,我在后台服务中录制。  我想根据用户模式选择录制视频。

选择模式:纵向/横向 - 右侧/左侧

假设我选择模式为横向左侧,应用程序进入后台并且用户旋转设备,即使发生这种情况我也只想在横向左侧录制视频;

我试过以下

Car

但似乎它不会在主屏幕上获得事件。 任何人都可以帮忙解决这个问题吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以将BroadcastReceiver用于后台服务,例如:

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent != null) {
            if (Intent.ACTION_CONFIGURATION_CHANGED.equals(intent.getAction())) {
                //configuration has changed
            }
        }
    }
};

@Override
public void onCreate() {
    super.onCreate();
    registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED));
}

@Override
public void onDestroy() {
    super.onDestroy();
    unregisterReceiver(mReceiver);
}

您可以在documention

中找到有关它的更多信息
  

广播操作:当前设备配置(方向,区域设置等)已更改。当发生这种变化时,需要根据这些新信息重建UI(视图层次结构);在大多数情况下,应用程序不必担心这一点,因为系统将负责停止并重新启动应用程序以确保它看到新的更改。某些无法重新启动的系统代码需要监视此操作并对其进行适当处理。

请注意,此意图只能从registerReceiver中检索,而不能通过意图过滤器从清单中检索