当前位置: 代码迷 >> Android >> 怎的让一个activity运行结束以后再运行另一个activity
  详细解决方案

怎的让一个activity运行结束以后再运行另一个activity

热度:17   发布时间:2016-05-01 13:18:13.0
怎样让一个activity运行结束以后再运行另一个activity
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继续进行下面的代码呢?






------解决方案--------------------
启动服务的代码写在UpdateActivity的oncreate不行吗。。。
------解决方案--------------------
在UpdateActivity中获得数据后发送一个broadcast,MainActivity接受这个broadcast,就可以获得这个数据了
------解决方案--------------------
UpdateActivity作为一个后台Activity,其生命周期应该也不长吧。
那索性就使用
startActivityForResult(i1);
然后在onResult()里去
startService(i2);

如此可以确保,i1完成了,返回result再去启动service。
  相关解决方案