我有这个密码
public ArrayList<StationData> getAllStations(String num1){
ArrayList<StationData> stationData = new ArrayList<>();
Cursor cursor = mydb.rawQuery(" select * from Stations where lines like '%"+num1+"%' ORDER BY id DESC", null);
if (cursor.moveToFirst()){
do {
int id = cursor.getInt(cursor.getColumnIndex("id"));
char faName = (char)(cursor.getColumnIndex("name"));
char enName = (char) (cursor.getColumnIndex("enName"));
char lines = (char)(cursor.getColumnIndex("lines"));
char address = (char) (cursor.getColumnIndex("address"));
float latitude = cursor.getFloat(cursor.getColumnIndex("latitude"));
float longitude = cursor.getFloat(cursor.getColumnIndex("longitude"));
StationData hh = new StationData(id, faName, enName, lines, address, latitude, longitude);
stationData.add(hh);
} while (cursor.moveToNext());
cursor.close();
}else{
}
return stationData;
}
class MetroLineMaker extends AsyncTask<String,Void,String>{
MetroDataBase metroDataBase = new MetroDataBase(getApplicationContext());
ArrayList<StationData> metroData;
StationData stationData = new StationData();
// metroData = new ArrayList<>();
protected void onPreExecute() {
}
@Override
protected String doInBackground(String... strings) {
metroData = metroDataBase.getAllStations(strings[0]);
for (int i=0;i<metroData.size()-1 ;i++) {
LatLng last = new LatLng(metroData.get(i).getLatitude(), metroData.get(i).getLongitude());
LatLng next = new LatLng(metroData.get(i + 1).getLatitude(), metroData.get(i + 1).getLongitude());
// createMarker(metroData.get(i).getLatitude(), metroData.get(i).getLongitude());
mMap.addMarker(new MarkerOptions()
.position(new LatLng(metroData.get(i).getLatitude(), metroData.get(i).getLongitude()))
.anchor(0.5f, 0.5f)
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_metro_line_one)));
mMap.addPolyline(
new PolylineOptions().add(
last, next
).width(10).color(Color.RED)
);
}
return null;
}
protected void onPostExecute(String result) {
}
}
E/AndroidRuntime:致命异常:AsyncTask#1进程:com.arnaway.metromap,pid:9493 java.lang.RuntimeException:在Android.os.AsyncTask$3执行doInBackground()时出错。done(AsyncTask.java:353)在java.util.concurrent.FutureTask.FinishCompletion(futureTask.java:383)在java.util.concurrent.FutureTask.SetExcepthtml" target="_blank">ion(futureTask.java:252)在index=0(位于com.arnaway.metromap.mainactivity$metrolinemaker.doinbackground(mainactivity.java:1028)(位于com.arnaway.metromap.mainactivity$metrolinemaker.doinbackground(mainactivity.java:1013)(位于android.os.asynctask$2)。call(asynctask.java:333)(位于java.util.concurrent.futuretask.run(futuretask.java:266)(位于在java.util.concurrent.ThreadPoolExecutor.RunWorker(ThreadPoolExecutor.java:1162) 在java.util.concurrent.ThreadPoolExecutor$worker.run(ThreadPoolExecutor.java:636) 在java.lang.Thread.Run(Thread.java:764)
我如何在一个异步任务中使用我的数据库并在MainActivity中显示我的标记我的异步任务也在MainActivity中。
我没有数据库方面的经验,但是你的其他代码在一个活动中在哪里呢?你在哪里申报mydb?似乎您的数组列表metroData没有被填充,所以它给出了数组越界错误。
你的getAllStations方法在哪里?在metroDataBase类中?那么这个类的代码在哪里呢?
问题内容: AsyncTask问题 我已经遵循了一些教程,但是对我来说仍然不清楚。这是我目前在代码下面有一些问题的代码。MainActivity调用SomeClassWithHTTPNeeds,然后调用JSONParser(AsyncTask <>) 主要活动: SomeClassWithHTTPNeeds: JSONParser(AsyncTask ) 我在想:—将HTTPRequest放在do
异步任务问题 我已经学习了一些教程,但我仍然不清楚。这是我目前拥有的代码,代码下面有一些问题。MainActivity调用SomeClassWithHTTPNeeds,然后调用JSONParser(异步任务 主要活动: 一些具有HTTP需求的类: JSONParser(异步任务 我在想:---把HTTPRequest放在doInBackground()中; 问题是我不知道如何:让JSONParse
你能帮帮我吗,我的代码在我尝试实现async任务以在我的应用程序中显示进度对话框之前运行,已经一周了,我尝试了几种解决方案但仍然是同样的问题,请有人纠正我的代码,我的代码是: 我的logcat显示错误: 05-31 12:13:09.437:I/编舞(698):跳过64帧!应用程序可能在其主线程上做了太多工作。05-31 12:13:10.159:我/编舞(698):跳过了60帧!应用程序可能在其
想改进这个问题吗 通过编辑此帖子,更新问题,使其只关注一个问题。 我不想将任何参数传递给AsyncTask的doInBackground方法。 那么代码应该是什么样的呢?
现在;我得到以下错误: 我以为这是因为我没有在会话中使用那个数据库;所以我去处理使用session.execute并使用sql语句use来使用数据库,但它给我带来了语法错误 check_if_exists=session.query(latest_movies_scraper).filter_by(name=dictionary['title']).first()
问题内容: 我必须将数据上传到服务器。我正在使用与我的应用程序运行在同一进程上的服务。我应该使用单独的线程进行上传过程还是应该使用AsyncTask将数据上传到服务器? 更具体地说,我可以在服务类中使用AsyncTask吗?我应该使用它吗?此服务应始终在内存中运行,以便每5秒将数据发送到服务器。 问题答案: 是的,您可以,下面的代码每5秒运行一次。使用常规的连接代码发送零件。