-1

在第一个活动中,我启动了这项服务:

    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 方法里我有一些操作。它工作正常。
但是我有问题,因为我想调用服务中具有新结果操作的活动(来自此服务)。在我项目的所有活动中,我都有方法更新。我只需要服务中的处理程序向所有活动或当前活动返回新信息的信息。

4

2 回答 2

0

谢谢你!它是少数活动的好解决方案吗?

    Intent intent = new Intent(Activity1.UPDATE);        
    sendBroadcast(intent);

    intent = new Intent(Activity2.UPDATE);        
    sendBroadcast(intent);

    intent = new Intent(Activity3.UPDATE);        
    sendBroadcast(intent);
于 2013-08-08T07:39:31.057 回答
0

可能您可以使用自定义广播接收器。从服务中,您可以广播消息并可以在您的活动中编写接收器。在活动的 onReceive() 中,您可以调用 update() 方法。

希望你明白我的意思

于 2013-08-07T23:49:13.510 回答