如何在Android中取消吐司?

用户名
public class MyAccessibilityService extends AccessibilityService {

    public static final String TAG = "volumeMaster";
    Context cx;
    String evt;
    public FileUtils fileUtils = new FileUtils();
    Toast toast = null;


    public PrijectorLauncher pm = null;@Override
    public void onAccessibilityEvent(AccessibilityEvent event) {


        evt = "getEventType " + event.getEventType() + "\n getWindowId " + event.getWindowId() + "\n getPackageName " + event.getPackageName() + "\n getBeforeText " + event.getBeforeText() + "\n getEventTime " + event.getEventTime() + "\n toString " + event.toString();

        Log.d(TAG, evt);
        LayoutInflater inflater = (LayoutInflater) cx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);


        View layout = inflater.inflate(R.layout.toast, null);
        View toastlayout = inflater.inflate(R.layout.toast, (ViewGroup) layout.findViewById(R.id.toast_layout_root));
        WebView webview = (WebView) layout.findViewById(R.id.webview);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.getSettings().setAllowFileAccess(true);
        webview.getSettings().setPluginsEnabled(true);
        webview.getSettings().setPluginState(PluginState.ON);
        webview.getSettings().setUserAgentString("iPad");
        webview.getSettings().setPluginsPath("/data/data/com.adobe.flashplayer/lib");
        webview.getSettings().setSupportZoom(false);
        webview.getSettings().setBuiltInZoomControls(false);
        webview.refreshDrawableState();
        webview.getSettings().setSaveFormData(true);
        webview.getSettings().setSavePassword(true);
        webview.getSettings().setLoadWithOverviewMode(true);
        webview.getSettings().setAppCacheMaxSize(1024 * 1024 * 8);
        webview.getSettings().setAppCachePath("/data/data/" + cx.getPackageName() + "/cache/");
        webview.getSettings().setDatabasePath("/data/data/" + cx.getPackageName() + "/databases/");
        webview.getSettings().setDatabaseEnabled(true);
        webview.getSettings().setAppCacheEnabled(true);
        webview.setWebViewClient(new WebViewClient());
        webview.setWebChromeClient(new WebChromeClient());
        webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        webview.getSettings().setDomStorageEnabled(true);
        webview.getSettings().setRenderPriority(RenderPriority.HIGH);
        webview.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
        webview.getSettings().setUseWideViewPort(false);
        webview.getSettings().setPluginState(PluginState.ON_DEMAND);

        webview.setPadding(0, 0, 0, 0);
        webview.setInitialScale(100);

        webview.addJavascriptInterface(this, "PRIVYTV");
        webview.loadUrl("file:///mnt/sdcard/prijector/pages/accessibility.html");


        toast = new Toast(getApplicationContext());


        if (event.getPackageName().equals("com.privytv.prijectorlauncher")) {
            Log.v(TAG, "*****Hiding onAccessibilityEvent");
            // Toast.makeText(this, "", Toast.LENGTH_LONG);

            return;
        } else {
            toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
            toast.setDuration(60000);
            //toast.setDuration(Toast.LENGTH_LONG);
            toast.setView(toastlayout);
            toast.setGravity(Gravity.BOTTOM, 0, 0);
            Log.v(TAG, "***** onAccessibilityEvent");
            toast.show();
        }

    }



    public FileUtils getFileUtils() {

        return fileUtils;

    }

    private class MyWebViewClient extends WebViewClient {@Override
        public void onReceivedHttpAuthRequest(WebView view,
        HttpAuthHandler handler, String host, String realm) {

            Log.d("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "WEBVIEW onReceivedHttpAuthRequest : " + host + " " + realm);
            //   handler.proceed("[email protected]", "mypassword");
            handler.proceed("prijector", "android");

        }
    }

    public class MyJavaScriptInterface {

        public String getfilelist(String channel) {
            return "BABABABABABABA " + channel;
        }

        public void playSound(String path) {}

        public void showToast(String toast) {
            Log.i(TAG, "DATA FROM JAVASCRIPT SHOTOAST" + toast);
        }

        public void log(String a) {
            Log.i(TAG, "JAVASCRIPT" + a);
        }

        public void loaded(String a) {
            Log.i(TAG, "JAVASCRIPT: WEBVIEW LOADED" + a);
        }

        public void finished(String a) {}
    }

    WebChromeClient chrome = new WebChromeClient() {

        public void onShowCustomView(View view, CustomViewCallback callback) {
            super.onShowCustomView(view, callback);
        }

        public void onReceivedHttpAuthRequest(WebView view,
        HttpAuthHandler handler, String host, String realm) {

            Log.d("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "WEBVIEW onReceivedHttpAuthRequest : " + host + " " + realm);
            handler.proceed("prijector", "android");

        }

        public void onProgressChanged(WebView view, int progress) {}

        public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
            Log.d(TAG, "WEBVIEW" + consoleMessage.lineNumber() + ":  " + consoleMessage.message());
            return true;
        }

        public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result) {
            Log.d(TAG, "WEBVIEW" + message);
            return true;
        };

    };

    @Override
    public void onInterrupt() {
        Log.v(TAG, "***** onInterrupt");
    }



    @Override
    public void onServiceConnected() {
        Log.v(TAG, "***** onServiceConnected");

        cx = getApplicationContext();
        AccessibilityServiceInfo info = new AccessibilityServiceInfo();
        info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
        info.eventTypes = AccessibilityEvent.TYPE_VIEW_FOCUSED;

        info.notificationTimeout = 1000;
        info.feedbackType = AccessibilityEvent.TYPES_ALL_MASK;
        setServiceInfo(info);

    }




}

我正在尝试取消某些特殊包装的烤面包,但无法正常工作

谁能建议我,如何实现?

如果我们在某个特定的时间展示任何吐司,是否有可能藏在两者之间?

UperOne

以我的经验,大多数情况下调用Toast的cancel()方法无效,您可以自定义一个类来管理项目的Toast,如下所示:

public class ToastUtil {

private static Handler handler = new Handler(Looper.getMainLooper());

private static Toast toast = null;

private static Object synObj = new Object();

public static void showMessage(final Context act, final String msg) {
    showMessage(act, msg, Toast.LENGTH_SHORT);
}

public static void showMessage(final Context act, final int msg) {
    showMessage(act, msg, Toast.LENGTH_SHORT);
}

public static void showMessage(final Context act, final String msg,
        final int len) {
    new Thread(new Runnable() {
        public void run() {
            handler.post(new Runnable() {
                @Override
                public void run() {
                    synchronized (synObj) {
                        if (toast != null) {
                            toast.cancel();
                            toast.setText(msg);
                            toast.setDuration(len);
                        } else {
                            toast = Toast.makeText(act, msg, len);
                        }
                        toast.show();
                    }
                }
            });
        }
    }).start();
}


public static void showMessage(final Context act, final int msg,
        final int len) {
    new Thread(new Runnable() {
        public void run() {
            handler.post(new Runnable() {
                @Override
                public void run() {
                    synchronized (synObj) {
                        if (toast != null) {
                            toast.cancel();
                            toast.setText(msg);
                            toast.setDuration(len);
                        } else {
                            toast = Toast.makeText(act, msg, len);
                        }
                        toast.show();
                    }
                }
            });
        }
    }).start();
}}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android取消点击吐司

来自分类Dev

如何在AsynTask内部的Android中创建吐司

来自分类Dev

如何在selendroid中验证吐司消息

来自分类Dev

如何在selendroid中验证吐司消息

来自分类Dev

如何在AsyncTask中显示吐司

来自分类Dev

如何在Android中取消AsyncTask的timerTask

来自分类Dev

如何在Android中以新更改的语言显示吐司和标题

来自分类Dev

如何在UWP App中创建信息丰富的吐司通知

来自分类Dev

如何在协程中制作吐司信息?

来自分类Dev

取消 Vue.js 时如何将吐司消息放在单独的文件中

来自分类Dev

如何在Android Studio(例如Eclipse)中取消引号

来自分类Dev

如何在Android中设置可取消的超时

来自分类Dev

如何在Android中隐藏取消隐藏的WebView

来自分类Dev

如何在 PhoneGap android 应用中取消显示订阅广告

来自分类Dev

Android:如何在吐司上显示我的长消息以供Android穿着?

来自分类Dev

选中或取消选中复选框时如何显示吐司?

来自分类Dev

触摸取消吐司消息

来自分类Dev

如何在吐司中看到文字

来自分类Dev

如何在Android上取消按键操作

来自分类Dev

如何在小吃店或吐司/ Textview中显示表情符号/表情符号

来自分类常见问题

如何在Angular 2中取消HTTPRequest?

来自分类Dev

如何在.AutoFilter中取消选择(空白)?

来自分类Dev

如何在fastcgi中取消Django缓存

来自分类Dev

如何在GIMP计划中取消报价

来自分类Dev

如何在CSH中取消引用变量

来自分类Dev

如何在Proguard中“取消学习”课程

来自分类Dev

如何在gitk中“取消标记”提交?

来自分类Dev

如何在MvvmCross中取消订阅WeakSubscribe

来自分类Dev

如何在PostgreSQL中取消透视表

Related 相关文章

热门标签

归档