当前位置: 首页 > 面试题库 >

自助式吐司

申屠弘图
2023-03-14
问题内容

我有一个运行远程服务然后退出的android活动。该服务本身在设备节点上进行轮询并检查更改,我想使用Toast来提醒用户,但是我没有让它起作用。Toast没有显示,过一会儿,Android喊我的应用程序没有响应。顺便说一句,我不想​​再次开始活动并从那里显示吐司,我只是希望它在显示给用户的当前屏幕上弹出。

服务代码如下:

public class MainService extends Service {

    // Native methods
    public native static int GetWiegandCode();
    public native static void openWiegand();
    public native static void closeWiegand();

    static int code = 0;

    // Other
    private static final String TAG = MainService.class.getSimpleName();
    private Handler handler;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    public void run() {
        Handler h;
        while (true) {
            code = GetWiegandCode();
            if (code > 0) {
                h = new Handler(this.getMainLooper());
                h.post(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(getBaseContext(),
                            "ID " + Integer.toString(code) +
                            "Just entered", Toast.LENGTH_LONG).show();
                    }
                });
            }
        }
    }

    @Override
    public void onCreate() {
        super.onCreate();
        openWiegand();
        Log.i(TAG, "Service Starting");
        this.run();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        closeWiegand();
        Log.i(TAG, "Service destroying");
    }

    static {
        System.loadLibrary("wiegand-toast");
    }
}

问题答案:

您无法通过服务呼叫Toast消息。除了UI线程之外,您不能对UI进行任何操作。您将需要研究从服务中与UI线程进行通信的多种方式之一-
BroadcastReciever,Messenger,AIDL等。

对于您想做的事情,您可能不需要走到AIDL路线。签出这个Messenger实施示例,然后从sdk-samples签出完整示例:

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/MessengerService.html



 类似资料:
  • 在mainactivity中使用MyToast: 我收到这个警告: 避免将null作为视图根传递(需要解析膨胀布局的根元素上的布局参数) 未为MyToast类型定义findViewById(int)方法

  • 自助书系统基于ajax的类似于ibook的翻书效果,社交网站。

  • 在搜索中,我看到的都是需要用户点击才能消失的警报。

  • 本文主要介绍分析模块的自助SQL功能,包括自助SQL的使用场景,产品的数据模型,语法规则,以及相关注意点。 1.1. 使用场景 自助分析主要用来解决现有分析模型无法提供的复杂数据计算或者提取。典型例子如下: 计算不同模块的之间使用的比率:类似于数值之间的四则运算 计算产品的设备相关数值:目前HubbleData仅提供用户相关分析以及计算 其他复杂计算:用户使用时长的统计,不同页面跳出率的统计等等。

  • 我有这个祝酒词要出现,一切都很好,除了音频。我试图将toast.mp3放在不同的位置,如项目主文件夹、资产等,甚至使用了d:/myprojectpath/Assets/toast.mp3这样的路径,但通知仍然是静默的。我是个初学者,所以也许我错过了什么...当然,我也在寻找解决方案,但没有任何帮助。下面是我的代码:

  • 我正在尝试使用自定义toast和和。当我触摸任何地方(点击按钮,触摸布局……)时,我希望我的吐司消失,但它没有。 我读取了文件,并尝试在调用新Toast之前使用方法,但这并没有解决任何问题。有人能给我一个解决办法吗?