...再次学习Android服务......
我多次注意到,作为用户,您可以通过点击应用上的按钮启动任务,然后离开应用。当你回来时,你发现任务已经完成。这在许多应用程序中完成。
这种行为的正确设计是什么?作为活动的一部分,任务是在UI线程上完成的,它是异步任务还是服务?
我能想到的唯一一件事就是服务,因为当操作系统杀死应用程序时,这将会存活下来,从而能够完成任务。 但是我觉得使用服务进行翻版是不可能的。
评论
答案 0 :(得分:0)
我认为一个好的做法是异步运行任何内容并将重要值存储在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刷新数据中执行,通知适配器的任何更改。 / p>