質問編集履歴
3
タイトル修正
title
CHANGED
|
@@ -1,1 +1,1 @@
|
|
|
1
|
-
[Android]
|
|
1
|
+
[Android]Activity.finish()時にWindowLeakedエラーが発生してしまう。
|
body
CHANGED
|
File without changes
|
2
「試したこと」を更新、タイトルAndroid Studio⇒Androidに変更
title
CHANGED
|
@@ -1,1 +1,1 @@
|
|
|
1
|
-
[Android
|
|
1
|
+
[Android]Toolbarの画面遷移でWindowLeakedエラーが発生してしまう。
|
body
CHANGED
|
@@ -142,6 +142,7 @@
|
|
|
142
142
|
- menu_main.xml
|
|
143
143
|
Toolbar上のメニュー表示を三点リーダ(…)ではなく、「Menu」という文字列にするために、
|
|
144
144
|
menu>item>menuとネストしています
|
|
145
|
+
menu_mainの書き方がそもそも間違っているかも??
|
|
145
146
|
```xml
|
|
146
147
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
|
147
148
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
|
@@ -165,10 +166,25 @@
|
|
|
165
166
|
</menu>
|
|
166
167
|
```
|
|
167
168
|
|
|
168
|
-
ソース
|
|
169
|
+
以下、ソースコード全文
|
|
169
170
|
[https://github.com/Monagano/sampleApp_teratailQ1](https://github.com/Monagano/sampleApp_teratailQ1)
|
|
170
171
|
|
|
171
172
|
###試したこと
|
|
173
|
+
finishを遅延実行させたところ、エラーが発生しなかったため、
|
|
174
|
+
応急処置として以下のコードを採用しています。
|
|
175
|
+
```Java
|
|
176
|
+
case R.id.action_main:
|
|
177
|
+
//finish();//ここだとエラー
|
|
178
|
+
new Handler().postDelayed(new Runnable() {
|
|
179
|
+
@Override
|
|
180
|
+
public void run() {
|
|
181
|
+
finish();//ここなら正常
|
|
182
|
+
}
|
|
183
|
+
},300);//300msは適当な値(100msだと早すぎてエラーとなりました)
|
|
184
|
+
```
|
|
185
|
+
finish処理時点でサブメニューの描画処理が終わっていないのが問題だと思うのですが、
|
|
186
|
+
サブメニューを明示的に閉じ、完了を待つすべがわかりません。
|
|
172
187
|
finish()手前でtoolbar.dismissPopupMenus()を行ってみましたが、改善しませんでした。
|
|
188
|
+
|
|
173
189
|
android初学者なため、的外れな質問となっていないか不安です。
|
|
174
190
|
よろしくお願いいたします。
|
1
タグを追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
File without changes
|