Android 클라이언트에 문제가 있습니다. nuxeo 컨텍스트에는 컨텍스트와 AndroidHttpClient가 포함되어 있습니다.AndroidHttpClient를 만들고 닫지 마십시오
가능한 한 닫으려고했으나 방법이 없습니다. 종료()를하면 나중에 내 nuxeo 서버에 질문 할 수 없게됩니다.
어떻게 닫을 수 있습니까?
스택 인쇄
05-20 11:46:06.945: E/AndroidHttpClient(24191): Leak found
05-20 11:46:06.945: E/AndroidHttpClient(24191): java.lang.IllegalStateException: AndroidHttpClient created and never closed
05-20 11:46:06.945: E/AndroidHttpClient(24191): at android.net.http.AndroidHttpClient.<init>(AndroidHttpClient.java:158)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at android.net.http.AndroidHttpClient.newInstance(AndroidHttpClient.java:144)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at org.nuxeo.ecm.automation.client.android.AndroidAutomationClient.<init>(AndroidAutomationClient.java:115>)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at org.nuxeo.android.context.NuxeoContext.getNuxeoClient(NuxeoContext.java:168)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at org.nuxeo.android.context.NuxeoContext.<init>(NuxeoContext.java:110)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at org.nuxeo.android.context.NuxeoContext.<init>(NuxeoContext.java:82)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at com.example.androidnuxeo.MainActivity.onCreate(MainActivity.java:90)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at android.app.Activity.performCreate(Activity.java:4562)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at android.app.ActivityThread.access$600(ActivityThread.java:128)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at android.os.Handler.dispatchMessage(Handler.java:99)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at android.os.Looper.loop(Looper.java:137)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at android.app.ActivityThread.main(ActivityThread.java:4514)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at java.lang.reflect.Method.invokeNative(Native Method)
05-20 11:46:06.945: E/AndroidHttpClient(24191): at java.lang.reflect.Method.invoke(Method.java:511)
코드
NuxeoContext ctx = new NuxeoContext(getBaseApplication());
try {
Session session = Connection.getSession();
itemID = ((TwoLineListItem) view).getText2().getText().toString();
itemTitle =((TwoLineListItem) view).getText1().getText().toString();
RequeteDetail requete = new RequeteDetail();
res = requete.execute(itemID,ctx).get();
type = res.getType();
} catch (Exception e) {
System.err.println(e);
e.printStackTrace();
}
NuxeoContext :
public synchronized AndroidAutomationClient getNuxeoClient() {
while (nuxeoClient != null && shuttingDown) {
try {
wait(100);
} catch (InterruptedException e) {
// Do nothing
}
}
if (nuxeoClient == null || nuxeoClient.isShutdown()) {
shuttingDown = false;
nuxeoClient = new AndroidAutomationClient(
serverConfig.getAutomationUrl(), androidContext,
sqlStateManager, blobStore, networkStatus, serverConfig);
Log.i(TAG, "new Nuxeo client " + nuxeoClient);
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, "Call stack: ", new Exception());
}
}
return nuxeoClient;
}
Connection.getSession :
public class Connection extends AsyncTask<NuxeoContext, Void, Session> {
Context ctx;
static Session session;
protected Session doInBackground(NuxeoContext... params) {
if(session == null || session.getClient().getBaseUrl() == null) {
NuxeoContext nctx= params[0];
session = nctx.getSession();
System.err.println("create connexion");
}
else {
System.err.println("connexion already open");
}
return session;
}
public static Session getSession() {
if(session == null || session.getClient() == null) {
System.err.println("No connexion");
}
return session;
}
}
Nuxeo 커넥터를 라이브러리로 통합 했으므로 조각 만 사용하고 활동은 사용하지 않습니다.
나는 혼란 스럽다. 그것을 닫으려고하지만 나중에 나중에 열어두기를 원하십니까? –
예, 모든 활동에서 필요합니다.하지만 앱을 닫지 않으면 작동하지 않습니다. – Pico