在Android中实施“扩展服务”后,如何修复这些错误?

时间:2013-10-02 14:30:42

标签: java android service android-activity

我目前正在处理一个代码,我需要将“extends Activity”转换为“extends Service”。我需要这个,因为即使手机处于睡眠模式,我也需要在后台运行我的应用程序(正在播放的音频)。但是,这样做会给我带来一些错误。我不知道如何解决这个问题。根据eclipse的建议,我在'protected void onCreate ...'之前删除了'@Override'。但它下面的功能仍有一些错误。

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)

我可以在服务中使用活动中的等效代码吗?

我该如何解决这些问题?我真的需要帮助。

2 个答案:

答案 0 :(得分:2)

简单的答案是,不,没有 - 除了onCreate,其在服务中设置的参数与在活动中设置的参数不同。您需要了解的是,服务在后台运行,并且不包含任何自己的UI。因此,窗口功能,视图,方向不适用于服务。

我建议您先阅读google上的服务文档。注意服务生命周期。

假设您想要一个播放声音的简单应用 - 即使手机进入睡眠状态或您的活动从前台移除也会继续这样做 - 那么您需要的是活动和服务的组合。 Activity将包含所有用户界面 - 就像现在一样。改变的是声音播放。您可以从服务中获取,而不是从活动中播放声音。然后,您需要在服务和活动之间进行通信 - 更新UI(从服务到活动)和控制回放(从活动到服务)。

Android开发者指南中的

Section on Services提供了有关如何实现此目标的更多信息 - 以及更多信息。

答案 1 :(得分:0)

Service中不存在这些方法。原因是,你不需要它们。 所有这些方法仅适用于“活动”,因为它们是显示数据/视图所必需的。

服务无法显示任何内容。查看Android fundamentals page