我在不同的类中有一个Intent服务,它检查数据库是否有新的通知。我正在访问MainActivity中的该服务中的TextView,但它一直给我错误。我知道我必须将textView.setText()行放在runOnUiThread()中,但我不知道如何在服务中为不同的活动执行此操作。任何人都可以向我展示这个吗?这是我的服务代码
public class notificationIntentService extends IntentService {
public String c;
List<ParseObject> ob1;
public notificationIntentService(){
super("notificationIntentService");
}
@Override
protected void onHandleIntent(Intent intent)
{
MainActivity.skip=0;
// new notifyy().execute();
MainActivity.counter=0;
ParseUser l = ParseUser.getCurrentUser();
String u = l.get("Name").toString();
String a ="1";
ParseQuery<ParseObject> q = new ParseQuery<ParseObject>("RatingsAndNames");
q.whereEqualTo("value",a);
q.whereEqualTo("CreatedFor",u);
try {
ob1=q.find();
for(ParseObject c1:ob1)
{
MainActivity.counter++;
}
} catch (ParseException e) {
e.printStackTrace();
}
c = String.valueOf(MainActivity.counter);
// MainActivity.notify.setText(c);
// I want to put the above line in the UiThread
}
}
答案 0 :(得分:0)
您可以使用bindService
绑定到活动的IntentService
。 This project是您想要实现的目标。唯一不同的是,他们使用Service
代替IntentService
(非常感谢@commonsware)。