我们有时候手机在运行过程中,触发某些条件,会弹出toast,但是有时候会对我们造成困扰,因为不是我们应用弹出来,但是发生的场景又是在我们应用操作过程中发现的。所以这个时候就需要对日志进行分析,找出正在弹出toast的地方。
public void show() { if (mNextView == null) { throw new RuntimeException("setView must have been called"); }INotificationManager service = getService(); String pkg = mContext.getOpPackageName(); TN tn = mTN; tn.mNextView = mNextView;
try { service.enqueueToast(pkg, tn, mDuration); } catch (RemoteException e) { // Empty } }
NotificationManagerService.java
if (DBG) { Slog.i(TAG, "enqueueToast pkg=" + pkg + " callback=" + callback + " duration=" + duration); }
if (pkg == null || callback == null) { Slog.e(TAG, "Not doing toast. pkg=" + pkg + " callback=" + callback); return ; }
adb logcat | grep enqueueToast 我们通过logcat就可以看到弹出toast的对应应用的包名,这样就可以让对应负责人进行修改。