同时开始两个活动,一个在前景中,另一个在后台

时间:2017-08-15 05:44:11

标签: android android-intent android-activity

我有两项活动 SplashScreen MainActivity

MainActvity下载一些数据并显示它。

现在我想在应用程序启动,后台的MainActivity和前台的SplashScreen上启动这两项活动,当MainActivity下载的数据完成时,我想让MainActivity成为前台并完成SplashScreen。

我见过许多解决方案,但在我的情况下,没有人能做得好。 请给我一些建议或示例。

1 个答案:

答案 0 :(得分:0)

我认为制作启动画面下载数据以及完成后显示新活动(MainActivity)会更好。在onStart metod中使用存储在手机上的下载数据。

您的示例:唯一的方法您可以通过首先启动MainActivity并从onStart启动SplashScreen来解决此问题:

class SplashScreen extends Activitiy {

    public void onStart() {
       EventBus.register(this);
    }

    @Subscribe
    public void finishedDownload(FinishedDownloadEvent) {
       this.finish()
    }
} 

class MainActivity extens Activity () {

   public void onStart () {
        open(new Intent(SplashScreen.class)); // We would like to have 

        download();
   }

   public void download (OnFinish onFinish) {
        ... download

       EventBus.post(new FinishedDownloadEvent());
   }
}

我忘了:

 class EventBus {

    private final static Bus instance = new Bus();

    public static void register (Object obj) {
        instance.register(obj)
    } 

    public static void post (Event obj) {
        instance.post(obj)
    } 

 }

EventBuss