Java jdbc无法在android上运行AsynTask

Java jdbc无法在android上运行AsynTask,java,android,jdbc,android-asynctask,Java,Android,Jdbc,Android Asynctask,}//类AccessDBTask } 你好!!我的问题是doInBackground执行,但ArrayList和resultset为空。 这是我用来获取数据库表名的代码,我使用Intent从MainActivity调用ViewData。但是,当我运行它时,与MainActivity运行时相同的代码运行得非常完美。日志控制台中没有错误。Android本机不支持jdbc。您需要创建一个web服务来获取和插入数据库中的数据。您可以找到任何制作web服务的好教程 简单的web服务可以是一个返回JSON或

}//类AccessDBTask

}

你好!!我的问题是doInBackground执行,但ArrayList和resultset为空。 这是我用来获取数据库表名的代码,我使用Intent从MainActivity调用ViewData。但是,当我运行它时,与MainActivity运行时相同的代码运行得非常完美。日志控制台中没有错误。Android本机不支持jdbc。您需要创建一个web服务来获取和插入数据库中的数据。您可以找到任何制作web服务的好教程

简单的web服务可以是一个返回JSON或xml的网页,您可以在android应用程序中解析它以获取数据


或者您可以检查

很抱歉,我没有提到我在项目中导入了jdbc库。我之所以要问这个问题,是因为如果我运行与MainActivity相同的代码,而不调用ViewData,那么它运行得非常好。
public class ViewData extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_data);
    AccessDBTask db=new AccessDBTask();
    db.execute(new String[]{""});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.view_data, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}


 private class AccessDBTask extends AsyncTask<String, Void, List<String>> {

     List<String> myData1 ; 


    @Override
    protected List<String> doInBackground(String... params) {
         String driverClassName="org.postgresql.Driver";  
           String url="jdbc:postgresql://url:port/dbname";
           Connection dbConnect=null;
           Statement statement=null;
           ResultSet result;
        //code for jdbc
         myData1 = new ArrayList<String>(); 
        try{
         Class.forName (driverClassName).newInstance();
         dbConnect = DriverManager.getConnection (url, "username", "password");
         statement = dbConnect.createStatement();

         DatabaseMetaData databaseMetaData = dbConnect.getMetaData();
    String[] types  = { "TABLE" };
    result = databaseMetaData.getTables("%","username", "%", types );
    while(result.next()) {
          //int  counter++;
            String tableName = result.getString(3);
            myData1.add(tableName);

       }
         statement.close();
         dbConnect.close();
        }catch(Exception ex){

        }


        return myData1;
    }
  @Override
  protected void onPostExecute(List<String> myData12){
      if(myData1.isEmpty()){
          Toast.makeText(ViewData.this,"ERROR", Toast.LENGTH_SHORT).show();
      }
      ArrayAdapter adapter = new ArrayAdapter<String>(ViewData.this,R.layout.activity_listview, myData1);

              ListView listView = (ListView) findViewById(R.id.country_list);
              listView.setAdapter(adapter);
  }