我们有时候手机在运行过程中,触发某些条件,会弹出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的对应应用的包名,这样就可以让对应负责人进行修改。