【发布时间】:2016-07-13 11:25:54
【问题描述】:
我制作了一个带有后台服务和广播接收器的应用,我的应用由MainActivity.java 和myServiceRunner.java 组成。当我启动后台服务时,它给了我这个错误,android.content.res.Resources$NotFoundException: String resource id #0x64。
我将这些代码放在 protected void onCreate(Bundle savedInstanceState) 中:
IntentFilter mainFilter=new IntentFilter("liren.action.GOSERVICE3");
receiver=new MyMainLocalReceiver();
registerReceiver(receiver, mainFilter);
MyMainLocalReceiver.java
public class MyMainLocalReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
try
{
int serviceData=intent.getIntExtra("serviceData",0);
//Toast.makeText(getApplicationContext(), serviceData,Toast.LENGTH_SHORT).show();
tvStepsCount.setText(serviceData);
}
catch (Exception e)
{
tvStepsCount.setText(e.toString());
}
}
}
在 myServiceRunner 扩展 Service 类中,我在 onStartCommand 方法中添加了这些代码。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Thread triggerService=new Thread(new Runnable() {
@Override
public void run() {
for(;;)
{
try
{
Intent myFilteredResponse = new Intent("liren.action.GOSERVICE3");
myFilteredResponse.putExtra("serviceData",100);
sendBroadcast(myFilteredResponse);
Thread.sleep(5000);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
});
triggerService.start();
return super.onStartCommand(intent, flags, startId);
}
manifest.xml
我已经添加了这些:
<service android:name=".myServiceRunner"></service>
<receiver android:name=".RecordSaved$MyMainLocalReceiver"></receiver>
我无法弄清楚错误,有人可以帮助我吗?谢谢:)
【问题讨论】:
-
试试 tvStepsCount.setText(""+serviceData);
-
非常感谢@Sathish Kumar J,它有效:)
-
@Antoni 请接受我的回答。那么只有其他人才能轻松找到正确答案
标签: android service broadcastreceiver android-service android-broadcast