在第一个活动中,我开始使用此服务:
public class TaskMsg extends Service
{
private static Timer timer;
private Context ctx;
public IBinder onBind(Intent arg0)
{
return null;
}
public void onCreate()
{
super.onCreate();
timer = new Timer();
ctx = this;
startService();
}
private void startService()
{
timer.scheduleAtFixedRate(new mainTask(), 0, 35000);
}
private class mainTask extends TimerTask
{
public void run()
{
toastHandler.sendEmptyMessage(0);
}
}
public void onDestroy()
{
timer.cancel();
super.onDestroy();
}
private final Handler toastHandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
// for example, 2*3;
}
}
}
在handleMessage方法中我有几个操作。它工作正常。
但我有问题,因为我想调用活动(来自此服务),在服务中有新的结果操作。在我项目的所有Activity中,我有方法Update。我只需要Handler in Service向所有Activity或当前Activity返回新信息的信息。
答案 0 :(得分:0)
可能是您可以使用自定义广播接收器。您可以通过该服务广播该消息,并在您的活动中编写接收器。在活动中的onReceive()中,您可以调用update()方法。
希望你明白我的意思
答案 1 :(得分:0)
谢谢!对于少数活动来说它是好的解决方案
Intent intent = new Intent(Activity1.UPDATE);
sendBroadcast(intent);
intent = new Intent(Activity2.UPDATE);
sendBroadcast(intent);
intent = new Intent(Activity3.UPDATE);
sendBroadcast(intent);