java - android java上下文解释

标签 java android function android-context

我有以下问题:

我必须使用 BT 打印机 SDK 中的以下功能:

    StarIOPort port = null;
    byte[] texttoprint = new byte[]{0x1b, 0x40, 0x1b,0x74,0x0D,(byte) 0x91,(byte) 0x92,(byte) 0x93,(byte) 0x94,(byte) 0x95,(byte) 0x96,(byte) 0x97,(byte) 0x98,(byte) 0x99,0x0A,0x0A,0x0A,0x0A,0x0A};


    try 
    {
        port = StarIOPort.getPort(portName, portSettings, 10000, context);
        port.writePort(textToPrint, 0, textToPrint.length);
        port.writePort(new byte[] {0x0a}, 0, 1);
    }
    catch (StarIOPortException e)
    {
        Builder dialog = new AlertDialog.Builder(context);
        dialog.setNegativeButton("Ok", null);
        AlertDialog alert = dialog.create();
        alert.setTitle("Failure");
        alert.setMessage("Failed to connect to printer");
        alert.show();
    }

除了语境,我什么都懂。

制造商提到

 * @param context - Activity for displaying messages to the user

我如何使用上述功能,因为在我使用它的方式中,我没有收到任何错误,也没有收到任何警告消息。

最佳答案

要显示警报(或任何其他 UI 组件),您需要 Activity 上下文,没错。如果此时没有任何 Activity 正在运行,则无法显示 Alert。

但是你可以显示Toast,使用类的静态方法Toast :

public static Toast makeText(Context context, CharSequence text, int duration);

将应用程序上下文作为第一个参数传递给它。

应用程序上下文在您的应用程序运行时始终可用,即使此时没有运行 UI 也是如此。您可以通过从上下文中调用 getApplicationContext() 方法来获取它。如果您根本没有任何上下文,您始终可以使用 YourAppClass(public class YourAppClass extends Application ),它在您的 list 中的 xml 标记下定义。 最常见的做法是使 YourAppClass 成为单例,并且它始终在您应用中的任何代码点可用。

关于java - android java上下文解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12248060/

相关文章:

java - 何时使用属性文件以及何时查看数据库?

java - InputStream.read() 返回的 int 值代表什么?

java - SimpleDateFormat:解析后小时为HH

android - 如何获取当前正在运行的所有任务

javascript - 传递一个函数作为参数,它使用父函数的参数,但也有它自己的参数

javascript - 如何将重复查询合并到 javascript/jquery 中的一个函数

c - 如何从 C 中的外部 .c 文件调用函数?

java - JUnit测试数据库重复记录异常

android - 在将最低 SDK 版本设置为 21 时,此应用与您的所有设备都不兼容

android - 具有多个子级的水平 LinearLayout,当没有更多水平空间时,将子级移动到新行下方