私の主なアクティビティは、singleInstance
モードです。主なアクティビティのインスタンスを別のクラスに保持しているので、他のアクティビティでは主なアクティビティのインスタンスに到達することを期待しています。しかし、別のアクティビティを開くと、主なアクティビティで何も変更できません。例外は次のとおりです。現時点では画面に表示されていないアクティビティインスタンスを使用しています
Exception when adding starting window
java.lang.IllegalArgumentException: View=com.android.internal.policy.PhoneWindow$DecorView{2f18818 V.E...... R.....ID 0,0-0,0} not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:424)
at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:350)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:116)
at com.android.server.policy.PhoneWindowManager.addStartingWindow(PhoneWindowManager.java:2359)
at com.android.server.wm.WindowManagerService$H.handleMessage(WindowManagerService.java:7840)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.android.server.ServiceThread.run(ServiceThread.java:46)
これは許可された状況ではありませんか?スタックの最上部にないアクティビティのビューを変更するにはどうすればよいですか?
あなたはメインアクティビティのonResume関数の変更を行う必要があります。 sharepreferencesまたはデータベースを介して2番目のアクティビティでパラメータを保存し、主な活動のonResumeメソッドでそれらを使用する –
アクティビティクラスの参照を保持するとメモリリークが発生し、実行しようとしていることを実行するためのより良い方法があります –
@JayakrishnanPm what a完全に間違っていてひどい提案である – EpicPandaForce