2013-10-02 37 views
-4

我目前正在研究一個代碼,我需要從'extends Activity'轉換爲'extends Service'。我需要這個,因爲即使手機處於睡眠模式,我也需要在後臺運行我的應用程序(正在播放音頻)。但是,這樣做會導致一些錯誤。我不知道如何解決這個問題。按照eclipse的建議,我在'protected void onCreate ...'之前刪除了'@Override'。但它下面的功能仍然存在一些錯誤。在Android中實現'extends Service'後,如何解決這些錯誤?

protected void onCreate(Bundle savedInstanceState) { 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_p_3); 
     setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
     p_e=0; 
     second_display=(TextView)findViewById(R.id.textView1); 
     minute_display=(TextView)findViewById(R.id.textView2); 
     hour_display=(TextView)findViewById(R.id.textView3); 

我有問題的是:

requestWindowFeature 
onCreate 
setContentView 
setRequestedOrientation 
findViewById 

finish(); (from another child class) 

是否有我可以在服務使用活動相當於碼?

我該如何解決這些問題?我真的需要幫助。

+1

只需用'Service'取代'Activity'就不會成爲服務。 –

+3

'活動中是否存在可用於服務的等效代碼?'不......我如何解決這些問題?'您必須學習[Android Fundementals](http://developer.android.com/guide/components /fundamentals.html) – Selvin

回答

2

簡單的答案是,沒有,除了onCreate之外,它沒有在服務中具有不同的參數集而不是在活動中。你需要了解的是一個服務在後臺運行,並且不包含任何它自己的UI。因此,窗口功能,視圖,方向不適用於服務。

我建議你先閱讀谷歌上的服務文檔。注意服務生命週期。

假設您想要一個播放聲音的簡單應用程序 - 即使手機進入睡眠狀態或您的活動已從前臺移除時也會繼續這樣做 - 那麼您需要的是活動和服務的組合。活動將包含所有用戶界面 - 完全像現在這樣。聲音播放會改變什麼。不是從活動中播放聲音,而是從服務中這樣做。然後,您需要在服務和活動之間進行溝通 - 更新UI(從服務到活動)並控制回放(從活動到服務)。

Section on Services在Android開發人員指南中提供了有關如何實現此目的的更多信息 - 還有更多。

+0

我閱讀了文檔的一些部分。它幫助,謝謝! –

0

這些方法不存在於Service中。原因是,你不需要他們。 所有這些方法僅適用於活動,因爲它們是顯示數據/視圖所需的。

服務無法顯示任何內容。檢查Android fundamentals page

+0

我應該使用抽象嗎? –

+0

@ChristopherTreanor抽象與它有什麼關係?您正在使用錯誤的組件**來存檔您的目標。 – Lovis