Этот вопрос обсуждался много раз, но я хочу уточнить мой конкретный случай.
public class LoggerActivity extends Activity
{
...
private Thread mInnerThread = new Thread()
{
public void run()
{
...
try
{
...
String line = "";
while ((line = bufferedReader.readLine()) != null && !isInterrupted())
{
mUIHandler.sendMessage(mUIHandler.obtainMessage(0, line))
}
...
}
catch (InterruptedException ex)
{
}
}
mUIHandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
mLoggerView.append((String)msg.obj + "\n");
}
};
...
@Override
protected void onDestroy()
{
mInnerThread.interrupt();
super.onDestroy();
}
}
Только InnerThread может отправлять сообщения на mUIHandler
, но я прерываю его на onDestroy
.Я думаю, что все в порядке, пока все сообщения из InnerThread будут обработаны, прежде чем GC-IN mUIHandler
....
Итак, вы можете подтвердить, что этот код ясен, и я могу спокойно игнорировать предупреждение?