別の UI スレッドを使用しましたか? 複数の UI スレッドを使用して、サンドイッチのように見えるようにしないでください。これを行うと、メモリ リークが発生します。
2日前に同様の問題を解決しました...
簡潔に言うと、メイン スレッドは複数の作業を行うために多くの UI スレッドを持つことができますが、UI スレッドを含む 1 つのサブスレッドがその内部にある場合、UI スレッドはその作業をまだ完了していない可能性がありますが、その親スレッドは既に作業を終了しています。これにより、メモリ リークが発生します。
たとえば... Fragment & UI アプリケーションの場合...これによりメモリ リークが発生します。
getActivity().runOnUiThread(new Runnable(){
public void run() {//No.1
ShowDataScreen();
getActivity().runOnUiThread(new Runnable(){
public void run() {//No.2
Toast.makeText(getActivity(), "This is error way",Toast.LENGTH_SHORT).show();
}});// end of No.2 UI new thread
}});// end of No.1 UI new thread
私の解決策は、次のように並べ替えます。
getActivity().runOnUiThread(new Runnable(){
public void run() {//No.1
ShowDataScreen();
}});// end of No.1 UI new thread
getActivity().runOnUiThread(new Runnable(){
public void run() {//No.2
Toast.makeText(getActivity(), "This is correct way",Toast.LENGTH_SHORT).show();
}});// end of No.2 UI new thread
参考までに。
私は台湾人です。ここでもう一度お答えできてうれしいです。