MainActivity的代码:    public void onCreate(Bundle savedInstanceState) {        
        
       
        // 更新数据
        Intent i1 = new Intent(MainActivity.this, UpdateActivity.class);
        i1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(i1); 
        // 启动服务
        Intent i2 = new Intent(MainActivity.this, MainService.class);
        i2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Log.i("XXXXXXXXXXXXXXXXXXX", "002");
        startService(i2);
        ......    }其中UpdateActivity.class是一个不可见的Activity,作用是将数据写入数据库,
但是运行结果是MainActivity从数据库里面读出的数据条数为0,
我估计是MainActivity只是启动了UpdateActivity,
还没有等UpdateActivity运行结束就继续下面的代码,
所以读出的数据库里面没有数据,
有没有办法让UpdateActivity执行结束以后(也就是this.finish()以后),再让MainActivity继续进行下面的代码呢?

解决方案 »

  1.   

     启动服务的代码写在UpdateActivity的oncreate不行吗
      

  2.   


    就是写在UpdateActivity的oncreate里面的,还是不行
      

  3.   

    在UpdateActivity中获得数据后发送一个broadcast,MainActivity接受这个broadcast,就可以获得这个数据了
      

  4.   

    UpdateActivity作为一个后台Activity,其生命周期应该也不长吧。
    那索性就使用
    startActivityForResult(i1);
    然后在onResult()里去
    startService(i2);如此可以确保,i1完成了,返回result再去启动service。