CN1库-runOnUiThread中没有代码触发

萨达特·阿布卡里(Sadart Abukari)

本机实现中的runOnUiThread中没有代码触发。runOnUiThread触发之前的代码。我确定我做的不对。我这样创建了CodenameOne库

package com.uithread.test;

import com.codename1.system.NativeInterface;

public interface UIThreadNative extends NativeInterface {

    public void runNativeCode();
}

package com.uithread.test;

import com.codename1.system.NativeLookup;
import com.codename1.ui.Dialog;

public class UIThreadManager {

private static UIThreadNative uithreadNative;

public UIThreadManager() {
    if (uithreadNative == null) {
        uithreadNative = (UIThreadNative) NativeLookup.create(UIThreadNative.class);
        if (uithreadNative == null) {
            Dialog.show("Null implementation", " UIThread is not implemented yet in this platform.", "Ok", null);

            throw new RuntimeException("UIThread is not implemented yet in this platform.");
        }
    }
    if (!uithreadNative.isSupported()) {
        Dialog.show("Unsupported", " UIThread is not supported in this platform.", "Ok", null);
        throw new RuntimeException("UIThread is not supported in this platform.");
    }
}

public void runNativeCode() {
    uithreadNative.runNativeCode();
}

}

Android的本机实现

package com.uithread.test;

import android.content.Context;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

import com.codename1.impl.android.*;
import com.codename1.ui.Dialog;

public class UIThreadNativeImpl {

private static Context context() {
    return com.codename1.impl.android.AndroidNativeUtil.getActivity().getApplicationContext();
}

private static Activity activity() {
    return com.codename1.impl.android.AndroidNativeUtil.getActivity();
}

public void runNativeCode() {
    final Activity convenientActivity = activity();//AndroidNativeUtil.getActivity();
    final CodenameOneActivity codenameoneActivity = (CodenameOneActivity) AndroidNativeUtil.getActivity();
    final android.app.Activity app = (Activity) AndroidNativeUtil.getActivity();

    Dialog.show("Activity", convenientActivity + " convenientActivity", "Ok", null);
    Dialog.show("Activity", codenameoneActivity + " codenameoneActivity", "Ok", null);
    Dialog.show("Activity", app + " App", "Ok", null);

    convenientActivity.runOnUiThread(new Runnable() {

        public void run() {
            Dialog.show("In run", "Run started", "Ok", null);
        }
    });
}

public boolean isSupported() {
    return true;
}

}

在Statemachine中,单击按钮即可在代码中运行它。

@Override
protected void onMain_ButtonAction(Component c, ActionEvent event) {
    UIThreadManager uIThreadManager = new UIThreadManager();
    uIThreadManager.runNativeCode();
}

正如我之前所说。runOnUiThread之前的代码有效,但runOnUiThread中的代码无效。本机实现中的runNativeCode中的对话框用于检查具有不同风味的活动,从而正确显示不同风味是相同的。

谢谢。

Shai Almog

本机UI线程与我们的EDT完全不同,因此从该线程显示一个Codename一个对话框将是严重违反EDT并可能导致严重崩溃!

由于我们的对话框可以安全地阻止您,因此您可以有效地阻止整个应用程序并使其崩溃。

我们用这条线是非常相当于你的代号之一,例如图书馆写的东西相当多的在这里

AndroidNativeUtil.getActivity().runOnUiThread(new Runnable() { ... });

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

cn1中的数学类功能

来自分类Dev

使用CN1中的REST API上传到Cloudinary

来自分类Dev

指定GUI元素在CN1中的绝对位置

来自分类Dev

如何在cn1中制作折线图

来自分类Dev

使用CN1中的REST API上传到Cloudinary

来自分类Dev

如何在cn1中制作折线图

来自分类Dev

指定GUI元素在CN1中的绝对位置

来自分类Dev

如何在 CN1 中创建此用户界面?

来自分类Dev

iOSPort下的代码可以在CN1应用程序中进行编辑吗?

来自分类Dev

CN1 Graphics.drawImage 旋转后具有锯齿效果

来自分类Dev

使用cn1库刷新库时出错

来自分类Dev

如何在Javase本机接口cn1中使用jar文件

来自分类Dev

如何在CN1 CSS(theme.css)中定义常量/宏?

来自分类Dev

如何在Javase本机接口cn1中使用jar文件

来自分类Dev

Linux 中的 .codenameone 和 .cn1 文件夹在哪里?

来自分类Dev

如何在CN1中将L10N捆绑包切换为运行状态

来自分类Dev

为什么在我的CN1应用程序中滑动手指时,我的侧边菜单会突然返回?

来自分类Dev

高度问题AutoCompleteTextField CN1

来自分类Dev

CN1 CodeScanner无法正常工作

来自分类Dev

CN1 CameraKit提供空的PeerComponent

来自分类Dev

高度问题AutoCompleteTextField CN1

来自分类Dev

cn1 - download file to phone's download directory

来自分类Dev

由于Retrolambda问题,无法构建CN1应用

来自分类Dev

从存储(cn1)读取文件时出现EOFException

来自分类Dev

使用没有setup.py的存储库中的代码

来自分类Dev

我在哪里可以获得iPhone 1 Skin for CN1 Simulator?

来自分类Dev

CN1 MultiImage大小与Android dpi资源文件夹相比

来自分类Dev

从CN1应用程序打印到Wifi打印机

来自分类Dev

使用cn1工具栏后无法使用Android本机后退命令

Related 相关文章

热门标签

归档