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)
我有一个像主题中的小问题。后台 运行 的 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)