启动任务,离开应用程序并返回以查看它已完成

Initiating a task, navigating away from the app and coming back to see it completed

...又是我的学习之旅Android服务...

我多次注意到,作为用户,您可以通过单击应用程序上的按钮来启动任务,然后离开该应用程序。当你回来时,你发现任务完成了。许多应用程序都这样做。

这种行为的正确设计是什么?任务是作为 activity 的一部分在 UI 线程上完成的,它是异步任务还是服务?

我唯一能想到的就是服务,因为当 OS 终止应用程序时它会继续存在,从而能够完成任务。 然而,我发现使用服务来做任何事都太过头了。

评论?

我认为一个好的做法是 运行 任何异步操作并将重要值存储在 SaveInstance 状态上。例如像这样:

@Override
protected void onSaveInstanceState(Bundle outState) {

    outState.putBoolean("MYBOOL", true);
    outState.putString("MYSTRING", "Hello World");

    super.onSaveInstanceState(outState);
}

然后在 onCreate 方法上:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);


    if(savedInstanceState != null){

        boolean myBool = savedInstanceState.getBoolean("MYBOOL");
        String myString = savedInstanceState.getString("MYSTRING");

    }

}

那是为了存储重要的变量...如果你想刷新任何数据以便当用户返回时发现它已加载,只需在异步任务中执行并在 onPostExecute 刷新数据通知适配器的任何更改.