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。