我有一個活動,我從哪裏開始了一項服務。該服務以橫向模式顯示佈局。我的問題是,如果服務在橫向模式下顯示任何內容,則活動也會進入橫向模式,如果服務佈局進入縱向模式,則活動佈局也會進入縱向模式。我只是想停止活動進入風景模式,而服務正在做一些風景模式的東西。我只想保留縱向模式下的活動。我已經嘗試通過清單,但沒有運氣。有沒有解決方法?服務中的方向更改
服務中的方向更改
回答
您不需要擔心服務。
如果你想保持視圖永久特定活動,則
在清單中,設置此爲您的活動的地方開始服務
<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