我想要完成的只是一个单一的活动"设置在我的应用程序的主页上,字面上做3件事; 1)抓取实际本地时间/日期,2)抓取经度/纬度,3)并将所有这些推入mysql数据库。
所以我的问题是,我是否需要扩展活动,或者我可以拥有一个只扩展asynctask的主类?
asynctask的原因是执行以下操作,获取所有onPreexecute然后将数据推送到mysql on" doInbackground"?
这会有用吗?
答案 0 :(得分:0)
您的主要活动应该扩展活动,当您想要运行这些功能时,您可以使用Asynctask
修改强> 例如:
class MainActivity extends Activity {
....
TextView a, b, c;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
new GrabDataAndStore().execute();
}
public class Wrapper {
public String data1;
public String data2;
public String data3;
}
private class GrabDataAndStore extends AsyncTask<String, Void, Wrapper> {
@Override
protected void onPreExecute() {
//Open Dialog (loading)
}
@Override
protected String doInBackground(String... params) {
//Store
Wrapper obj = new Wrapper();
obj.data1 = (data gathered);
obj.data2 = (data gathered);
obj.data3 = (data gathered);
return obj;
}
@Override
protected void onPostExecute(Wrapper obj) {
a.setText(obj.data1);
b.setText(obj.data2);
c.setText(obj.data3);
}
}
}
请注意,您可以创建一个Wrapper类,以便将值从doInBackground传递给onPostExecute。 这实际上不是代码,而是关于如何继续的明确说明。 希望它有所帮助