我有一个活动,我从哪里开始了一项服务。该服务以横向模式显示布局。我的问题是,如果服务在横向模式下显示任何内容,则活动也会进入横向模式,如果服务布局进入纵向模式,则活动布局也会进入纵向模式。我只是想停止活动进入风景模式,而服务正在做一些风景模式的东西。我只想保留纵向模式下的活动。我已经尝试通过清单,但没有运气。有没有解决方法?服务中的方向更改
服务中的方向更改
回答
您不需要担心服务。
如果你想保持视图永久特定活动,则
在清单中,设置此为您的活动的地方开始服务
<activity android:name=".YourActivity"
android:configChanges="orientation"
android:screenOrientation="landscape"/> // or portrait
或 有条件的情况(临时),你可以做
if(isServiceStarted){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
if(isServiceEnded){
//flip to original view
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
我希望它能为你工作。
更新答
当朝向改变方向的 生命周期,会发生什么
onPause();
onSaveInstanceState();
onStop();
onDestroy();
onCreate();
onStart();
onResume();
使2种方法
void changeToLandscape(){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
void changeToPro(){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
现在当你要旋转视图
onCreate(){
// start service here and rotate view
changeToLandscape();
}
那么它会去的onResume()
void onResume(){
super();
if(isServiceOn){
changeToLandscape()
}
else{
changeToPro()
}
}
void onPause(){
super();
if(isServiceOn){
changeToLandscape()
}
else{
changeToPro()
}
}
Handler h; Runnable r; public void orien(){ h = new Handler(); (){ r = new Runnable(){ @Override public void run(){ if(fullscreen)setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); h.postDelayed(r,1); } else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); h.postDelayed(r,1); } } }; h.post(r); } –
尝试使用此处理程序,但仍然无法正常工作。感谢您的回复 –
服务将视图设置为横向状态时,该活动也转到横向状态。服务关闭后,它立即返回到portrait.the问题是为什么活动进入土地。在的onResume( –
服务没有任何layout
或UI。从Android doc
一个服务了解了服务的基础知识是可以执行长时间运行在后台 操作的应用组件,它不向用户提供 接口。另一个应用程序组件可以启动服务,并且即使用户切换到另一个应用程序,它也会继续在后台运行。此外,组件可绑定到服务 以与其交互,甚至执行进程间通信(IPC)。例如,服务可以处理网络交易,播放音乐,执行文件I/O或与内容提供商交互,全部来自 背景。
你可能有2个活动,并控制方向有吨的SO线程已经喜欢: - Android - disable landscape mode?
How do I disable orientation change on Android?
是的,你是正确的服务没有ui.but但我使用窗口管理器来显示从xml.so四舍五入膨胀起来的视图,我有一个活动和一个service.i想修复活动的方向肖像,但是whn该服务转到横向模式活动视图也转到横向模式。通过使用
服务将景观视为景观的那一刻,景物也会流向景观。服务关闭后,景物即会回到肖像。问题就是活动落地的原因。 –
服务在后台长时间运行的操作执行。它没有用户界面。
- 1. 如何使用服务监视Android中的方向更改
- 2. 媒体播放器服务,ViewPagerAdapter上的方向更改
- 3. 向后兼容更改Web服务API?
- 4. 方向更改
- 5. 方向更改
- 6. 更改服务的配置方式
- 7. Android mantain通过方向更改来连接服务
- 8. Android:服务绑定在方向更改时丢失
- 9. 在android中更改方向
- 10. 在JFrame中更改方向
- 11. 在UITabBar中更改方向
- 12. 如何从Android中的服务更改设备的屏幕方向?
- 13. 方向服务googlemap
- 14. Iphone方向更改
- 15. 更改方向ANDROID
- 16. ViewController方向更改
- 17. UIWebView方向更改
- 18. Android方向更改
- 19. Powershell Web服务方法定义更改
- 20. 方向更改 - 更新UI
- 21. android的方向更改
- 22. Android的方向更改
- 23. 更改支持的方向
- 24. Android的方向更改
- 25. 更改ActionBar的方向
- 26. Android更改ImageView的方向
- 27. Android的方向更改
- 28. UIBarButtonItem更改viewController的方向
- 29. 将配方原料更改为服务更改
- 30. 服务中的方向侦听器
“服务显示在横向模式下的布局” - 你不妨详细解释你这个意思,如通过[MCVE] 。 – CommonsWare