Android 远程连接数据库。。。。。
Posted 正义的伙伴!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 远程连接数据库。。。。。相关的知识,希望对你有一定的参考价值。
本来是 6.0.6 换成mysql 5.1.14 驱动ok。。。。
将方法 放在 new Thread() 解决。。。。。
只能在主线程绘制ui。。。。
解决办法。。。
子Thread 获取数据后,将绘制ui代码放到Handler.post中执行
代码---- package com.example.administrator.demo1; import android.os.Handler; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.AttributeSet; import android.view.View; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.TabHost; import android.widget.TabWidget; import android.widget.TextView; import android.widget.Toast; import org.whm.db.DbUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.jar.Attributes; public class MainActivity extends AppCompatActivity { //钩子线程 Handler handler = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Example of a call to a native method //TextView tv = (TextView) findViewById(R.id.tabhost); // tv.setText(stringFromJNI()); TabHost tabHost = (TabHost) findViewById(R.id.tabhost); tabHost.setup(); // FrameLayout frameLayout = (FrameLayout) findViewById(R.id.tabcontent); // int childCount = frameLayout.getChildCount(); LinearLayout l1 = (LinearLayout) findViewById(R.id.tab1); LinearLayout l2 = (LinearLayout) findViewById(R.id.tab2); handler = new Handler(); //在lambda中尽量不要抛出异常。。。。 new Thread(() -> { List<Map<String, Object>> list = getData(l1); handler.post(new Thread(() -> { darwView(list, l1); })); }).start(); TabHost.TabSpec tabSpec1 = tabHost.newTabSpec("tabSpec1").setIndicator("视频").setContent(R.id.tab1); TabHost.TabSpec tabSpec2 = tabHost.newTabSpec("tabSpec2").setIndicator("直播").setContent(R.id.tab2); tabHost.addTab(tabSpec1); tabHost.addTab(tabSpec2); } /** * A native method that is implemented by the \'native-lib\' native library, * which is packaged with this application. */ public native String stringFromJNI(); //从远程服务器获取数据 private List<Map<String, Object>> getData(LinearLayout l) { List<Map<String, Object>> list = null; try { list = DbUtils.execQuery("select * from video", null); } catch (Exception e) { e.printStackTrace(); Toast.makeText(getApplicationContext(), "发生了错误", Toast.LENGTH_LONG).show(); } return list; } //绘制ui private void darwView(List<Map<String, Object>> list, LinearLayout view) { list.forEach((map) -> { TextView tv = new TextView(getApplicationContext()); tv.setText((String) map.get("title")); view.addView(tv); }); } // Used to load the \'native-lib\' library on application startup. static { System.loadLibrary("native-lib"); } }
以上是关于Android 远程连接数据库。。。。。的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio使用JDBC远程连接mysql的注意事项(附示例)
我们可以使用 JDBC 在 Android 中连接远程 MySQL 数据库吗? [关闭]