我有一个读取nfc标签的应用程序,只要nfc标签没有放在手机附近,我就会显示一个带有小动画的进度对话框,并建议用户将nfc标签放在手机附近。
然而..对于新的意图(在我的cas nfc意图中),我希望对话框自动关闭并启动新的活动。
到现在为止,我做到了:
Intent newIntent = new Intent(this.getApplicationContext(), NFCResultActivity.class);
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
this.startActivity(newIntent);
this.finish();
因此,当前活动将被删除(FLAG_ACTIVITY_CLEAR_TOP)并启动新的活动。但这似乎不是很干净,因为我得到了以下错误消息:
11-02 15:12:49.375: E/WindowManager(25579): android.view.WindowLeaked: Activity
de.MyActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{41ec5db0 V.E..... R......D 0,0-729,324}
that was originally added here
那么,我如何才能做到干净呢?
发布于 2014-11-02 22:38:59
出现此错误的原因是,您的对话框是在活动销毁后显示的。在开始新活动之前关闭该对话框:
myDialog.dismiss();
Intent newIntent = new Intent(this.getApplicationContext(), NFCResultActivity.class);
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
this.startActivity(newIntent);
this.finish();
或者调用onPause
中的myDialog.dismiss();
,这样当活动被销毁时,对话框将被关闭。
https://stackoverflow.com/questions/26700485
复制相似问题