簡體   English   中英

與mysql連接時android.app.serviceconnection泄漏

[英]android.app.serviceconnectionleaked while connecting with mysql

我在沒有任何服務器幫助的情況下直接與mysql數據庫連接。 當我嘗試使用模擬器與mysql連接時,它工作正常。 但是當我使用手機時,會引發一些異常。 我不知道是什么問題。 請幫我解決一下這個。

這是我的代碼:

Connection con;
PreparedStatement ps;
Statement st;
ResultSet rs;
String val = "";
Context cont = this;
View menuItemView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Thread on=new Thread(){
        @Override
        public void run(){
          Log.i("Thread","Running"); 
            try {
                    Class.forName("com.mysql.jdbc.Driver");
                    Log.i("Connection","connected with jdbc");
                    con = DriverManager.getConnection("jdbc:mysql://192.168.1.2:3306/outsidelaundry", "vino" , "vino");
                    Log.i("Connection","connected with database");
                    runOnUiThread(new Runnable() {
                        @Override 
                        public void run() {
                                Toast.makeText(getApplicationContext(), "connected", Toast.LENGTH_LONG).show();
                        }
                    });
            } catch (Exception e) {
                e.printStackTrace();

            }
        }
    };
    on.start();
}

logcat錯誤說:

09-26 14:46:05.474: E/StrictMode(809): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40cec370 that was originally bound here
09-26 14:46:05.474: E/StrictMode(809):  at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
09-26 14:46:05.474: E/StrictMode(809):  at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
09-26 14:46:05.474: E/StrictMode(809):  at android.app.ContextImpl.bindService(ContextImpl.java:1418)
09-26 14:46:05.474: E/StrictMode(809):  at android.app.ContextImpl.bindService(ContextImpl.java:1407)
09-26 14:46:05.474: E/StrictMode(809):  at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
09-26 14:46:05.474: E/StrictMode(809):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
09-26 14:46:05.474: E/StrictMode(809):  at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
09-26 14:46:05.474: E/StrictMode(809):  at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
09-26 14:46:05.474: E/StrictMode(809):  at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
09-26 14:46:05.474: E/StrictMode(809):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
09-26 14:46:05.474: E/StrictMode(809):  at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
09-26 14:46:05.474: E/StrictMode(809):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
09-26 14:46:05.474: E/StrictMode(809):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
09-26 14:46:05.474: E/StrictMode(809):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
09-26 14:46:05.474: E/StrictMode(809):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
09-26 14:46:05.474: E/StrictMode(809):  at java.lang.Thread.run(Thread.java:856)
09-26 14:46:05.484: W/ActivityManager(339): Unbind failed: could not find connection for android.os.BinderProxy@4102be08

解決方案 :我找到了解決此問題的方法。 為了直接將移動設備與mysql數據庫連接以發送/接收數據,您首先應該在wifi上,不僅如此,還要在設備中啟用后台數據和自動同步。 后台數據是一種允許在設備內傳輸數據的數據。

我可能記不清了。 我認為我在將解決方案添加到Application時遇到了類似的問題:

@Override
public void onCreate() {
    try {
        Class.forName("android.os.AsyncTask");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    super.onCreate();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM