我目前正在处理一个代码,我需要将“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)
我可以在服务中使用活动中的等效代码吗?
我该如何解决这些问题?我真的需要帮助。
答案 0 :(得分:2)
简单的答案是,不,没有 - 除了onCreate
,其在服务中设置的参数与在活动中设置的参数不同。您需要了解的是,服务在后台运行,并且不包含任何自己的UI。因此,窗口功能,视图,方向不适用于服务。
我建议您先阅读google上的服务文档。注意服务生命周期。
假设您想要一个播放声音的简单应用 - 即使手机进入睡眠状态或您的活动从前台移除也会继续这样做 - 那么您需要的是活动和服务的组合。 Activity将包含所有用户界面 - 就像现在一样。改变的是声音播放。您可以从服务中获取,而不是从活动中播放声音。然后,您需要在服务和活动之间进行通信 - 更新UI(从服务到活动)和控制回放(从活动到服务)。
Android开发者指南中的Section on Services提供了有关如何实现此目标的更多信息 - 以及更多信息。
答案 1 :(得分:0)
Service
中不存在这些方法。原因是,你不需要它们。
所有这些方法仅适用于“活动”,因为它们是显示数据/视图所必需的。
服务无法显示任何内容。查看Android fundamentals page