1

基本上我已经创建了一个应用程序,用户可以在其中输入一个数字(以秒为单位)。然后他们单击一个按钮并创建一个服务,该服务从输入的秒数开始运行倒计时。但是在我的服务中,我引用了以下变量:

public EditText text = (EditText)findViewById(R.id.editText1);
int Time = Integer.parseInt(text.getText().toString());

这会“破坏”服务,因为它是静态的并且无法引用 findViewById。我已经尝试了几个小时来解决这个问题,但我不知道,非常感谢任何帮助!

4

1 回答 1

0

为什么Service必须是static?AService应该是启动/停止或绑定/未绑定(或两者的组合)。您不必创建staticAndroid Service

将此代码放入您的Activity而不是Service...

public EditText text = (EditText)findViewById(R.id.editText1);
int time = Integer.parseInt(text.getText().toString());

...然后只需将时间传递给ServiceIntent用来启动它的...

Intent i = new Intent(this, MyService.class);
i.putExtra("the_time", time);
startService(i);

然后在Service onStartCommand(...)方法中使用...

int time = intent.getIntExtra("the_time", 0);
于 2012-11-29T00:14:23.640 回答