Мое приложение для Android должно считывать около 25 КБ из InputStream, который обернут в BufferedReader.Это происходит в фоновом потоке, который общается через обработчик.Но при начале чтения поток кажется заблокированным, и появляется сообщение об отладке:
09-29 22:56:27.837 13625-13640/de.jzbor.epos I/art: Background sticky concurrent mark sweep GC freed 519353(7MB) AllocSpace objects, 0(0B) LOS objects, 77% free, 2MB/10MB, paused 797us total 109.196ms
Я не знаю, как справиться или обойти это, и я не смогнайти что-то полезное в интернете.Я был бы очень благодарен за любые советы или решения.
Вот код и журнал:
Метод:
@Override
public void run() {
if (request == null)
return;
int responseHash = 0;
int returnCode = 0;
String timestamp = "0";
int responseType = 0;
Object returnObject = "";
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if ((networkInfo == null) || (!networkInfo.isConnectedOrConnecting())) {
returnCode = 1;
} else {
try {
socket = new Socket(HOST, PORT);
PrintWriter pw = new PrintWriter(socket.getOutputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw.println("get " + request);
pw.flush();
String responseString = "";
Log.d("EpOs", "1");
while (!br.ready());
int i = 0;
while (br.ready()){
Log.d("EpOs", "ln"+i++);
char c;
c = (char)br.read();
if (c != 0)
responseString += Character.toString(c);
}
Log.d("EpOs", "1.5");
System.out.println(responseString);
timestamp = new SimpleDateFormat("E HH:mm").format(new Date());
switch (request) {
case "service/vertretungsplan": {
try {
responseType = 101;
SubstituteDay sd = SubstitutePlanGetter.getSubstitutions(responseString)[0];
} catch (URISyntaxException | ImplicitLoginException e) {
e.printStackTrace();
returnCode = 21;
}
break;
}
default: {
returnCode = 2;
}
}
socket.close();
} catch (IOException e) {
e.printStackTrace();
returnCode = 3;
}
Log.d("EpOs", "2");
Integer rc = returnCode;
Object[] objects = new Object[3];
objects[0] = rc;
objects[1] = timestamp;
objects[2] = returnObject;
Message msg = handler.obtainMessage(responseType, objects);
msg.sendToTarget();
}
Logcat:
09-29 23:12:42.866 21779-21779/? I/art: Late-enabling -Xcheck:jni
09-29 23:12:43.278 21779-21779/de.jzbor.epos I/InstantRun: starting instant run server: is main process
09-29 23:12:43.476 21779-21779/de.jzbor.epos W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
09-29 23:12:43.533 21779-21779/de.jzbor.epos D/EpOs: Test
09-29 23:12:44.150 21779-21779/de.jzbor.epos I/ViewRootImpl: CPU Rendering VSync enable = false
09-29 23:12:44.153 21779-21804/de.jzbor.epos D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
09-29 23:12:44.215 21779-21804/de.jzbor.epos I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: EGL 1.4 QUALCOMM build: ()
OpenGL ES Shader Compiler Version: E031.25.03.04
Build Date: 04/28/15 Tue
Local Branch:
Remote Branch:
Local Patches:
Reconstruct Branch:
09-29 23:12:44.217 21779-21804/de.jzbor.epos I/OpenGLRenderer: Initialized EGL, version 1.4
09-29 23:12:44.231 21779-21804/de.jzbor.epos D/OpenGLRenderer: Enabling debug mode 0
09-29 23:12:44.396 21779-21779/de.jzbor.epos W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
09-29 23:12:44.501 21779-21779/de.jzbor.epos I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@69cc367 time:42529086
09-29 23:12:48.039 21779-21829/de.jzbor.epos D/EpOs: 1
09-29 23:12:56.169 21779-21794/de.jzbor.epos I/art: Background sticky concurrent mark sweep GC freed 569396(9MB) AllocSpace objects, 0(0B) LOS objects, 77% free, 2MB/10MB, paused 768us total 112.713ms
09-29 23:13:03.718 21779-21794/de.jzbor.epos I/art: Background partial concurrent mark sweep GC freed 523840(8MB) AllocSpace objects, 0(0B) LOS objects, 83% free, 2MB/14MB, paused 656us total 116.436ms
09-29 23:13:14.916 21779-21794/de.jzbor.epos I/art: Background sticky concurrent mark sweep GC freed 784615(11MB) AllocSpace objects, 0(0B) LOS objects, 77% free, 2MB/10MB, paused 489us total 122.385ms
09-29 23:13:29.955 21779-21794/de.jzbor.epos I/art: Background sticky concurrent mark sweep GC freed 521041(7MB) AllocSpace objects, 0(0B) LOS objects, 77% free, 2MB/10MB, paused 727us total 103.527ms
09-29 23:15:34.196 21779-22644/de.jzbor.epos D/EpOs: 1
09-29 23:16:24.117 21779-21794/de.jzbor.epos I/art: Background sticky concurrent mark sweep GC freed 514462(7MB) AllocSpace objects, 0(0B) LOS objects, 76% free, 2MB/10MB, paused 539us total 101.177ms
09-29 23:17:09.050 21779-21794/de.jzbor.epos I/art: Background sticky concurrent mark sweep GC freed 514702(7MB) AllocSpace objects, 0(0B) LOS objects, 75% free, 2MB/10MB, paused 607us total 106.134ms