Android:如何从工作线程到服务进行通信

我已经创建了一个服务类和一个在一个单独的线程中执行的worker类。 我想在它们之间建立通信,因此工作人员可以将某些状态发送回服务。 我试图将我的工作Thread转换为HandlerThread并在服务端设置一个Handler ,但后来我不知道如何实际从工作人员发送消息。 看起来我无法理解这个概念。 这是我的课程(没有沟通逻辑): 服务类 package com.example.app; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.util.Log; public class ConnectionService extends Service { protected ConnectionWorker thread; @Override public void onCreate() { super.onCreate(); // Creating a connection worker thread instance. // Not starting it yet. this.thread = new ConnectionWorker(); Log.d(this.getClass().getName(), “Service created”); } @Override public int […]

调用getListCellRendererComponent多少次?

我试图理解getListCellRendererComponent方法是如何工作的,但我不明白。 我创建了一个扩展BasicComboBoxRenderer的独立类,我添加了一个计数器,每次调用getListCellRendererComponent时都会打印一个。 然后我运行一个带有main方法的测试类,该方法显示一个框架,其中只有一个使用我的自定义渲染器类的JComboBox。 这个combobox共有3个项目,我设置了setMaximumRowCount(2),因此它只显示其中的2个。 当我第一次运行程序并出现带有combobox的帧时,计数器会通知getListCellRendererComponent被调用6次。 当框架失去焦点时(例如,当我点击我的桌面时),该方法执行1次。 当帧重新获得焦点时(单击我的帧),该方法执行1次。 当我单击箭头按钮并且第一次出现下拉列表时,计数器表示该方法执行了8次。 当我再次单击箭头按钮并且列表消失时,该方法被调用一次(这总是发生)。 当我第一次点击箭头按钮后,该方法被调用5次。 当我单击滚动条按钮上下移动时,该方法执行1次。 当我将光标移动到列表中未选择的项目上时,该方法执行2次,然后再执行1次(这是最荒谬的) 当我单击列表中的项目时,该方法执行4次。 起初我认为这个方法将被执行的次数与列表中的项目数量相同(再加上combobox显示区域中显示的一个项目)。 但是我只能理解上面的一两种情况,例如当我单击滚动条按钮并且该方法执行一次时,可能是因为渲染了一个新项目。 其余的人似乎疯了……

使用XPath Java在Tag内部读取

Hye我是新手阅读使用Java的XML文件我的问题是我一直在尝试读取xml和特定标签之间我想获取所需的数据我使用的是XPath,我的查询是: String expression = “/ADOXML/MODELS/MODEL/MODELATTRIBUTES/ATTRIBUTE[@type=’STRING’]”; 它工作正常,我的特定标签是: SOME TEXT 但我想只读取这些类型的标签内的数据,以便我的输出应该是: SOME TEXT 在标签里面! 有人可以帮我,我怎么能这样做请xml阅读新手! 尽我所能: String expression = “/ADOXML/MODELS/MODEL/MODELATTRIBUTES/ATTRIBUTE[@name=’Description’ and ./type/text()=’STRING’]”; 但它不会给我任何输出! 提前致谢 我的代码: DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = null; try { builder = builderFactory.newDocumentBuilder(); org.w3c.dom.Document document = builder.parse( new FileInputStream(“c:\\y.xml”)); XPath xPath = XPathFactory.newInstance().newXPath(); String expression = “/ADOXML/MODELS/MODEL/MODELATTRIBUTES/ATTRIBUTE[@name=’Description’and @type=’STRING’]”; System.out.println(expression); NodeList nodeList = […]

Struts 2和业务对象

在Struts 2类中, http get params由字段变量自动获取 。 虽然在许多类中都重复了诸如userId,groupId,等类字段,但我决定在每个类中创建一个业务对象类RequestParams并将所有字段放在那里。 然后我所有的课程都只有RequestParams rp; 使用getRp(); 和setRp(); rp类将使用带有getter / setter和所有其他字段的userId 。 现在我看到我必须更换。 例如userId with getRp() 。 getUserId(); 第34行现在代码看起来很难看。 有了这个: messageId = ChatDao.saveMessage(userId,groupId , message); 看起来像 rp.setMessageId( ChatDao.saveMessage(rp.getUserId(), rp.getGroupId(), rp.getMessag() ) ); 做这种事情的更好方法是什么? public class SendMessageOrStartChatAction extends BaseActoinSupport{ private static final long serialVersionUID = 1L; private int userId; private int groupType; private […]

如何从Quartz调度程序查询预定作业?

我的应用程序中有一个Scheduler对象,我使用scheduleJob方法将Job添加到它。 在我的代码中,我使用即时Trigger安排Job s: TriggerBuilder.newTrigger().startNow().build(); 我的问题是如何判断哪些Job被安排到我的Scheduler ? 到目前为止,只有一个getCurrentlyExecutingJobs方法似乎不可靠。

将水印添加到JTextArea

它们是一种向JTextArea添加水印的方法吗?

java split()方法

我有一个字符串’123’(是的,它是我程序中的一个字符串)。 当我使用这种方法时,有人可以解释一下: String[] str1Array = str2.split(” “); 为什么我得到str1Array[0]=’123’而不是str1Array[0]=1 ?

CompareTo / Sorting字符串和整数的2D数组

好的,所以我现在想出如何通过字符串和整数对2d数组进行排序,但是我不知道如何将它们组合起来。 我有一个2d用户数组,每行有一个用户数据。 数据分别是列的字符串或整数,所以如果我有多个比较方法,例如按名称排序或按电话号码排序,我如何实现初始的2d数组,因为如果我将它声明为字符串,我就无法比较按整数,如果我将其声明为整数,我就不能再通过String进行比较。 我现在使用的是基本的2d排序方法。 final Integer[][] data1 = userlistcopy; Arrays.sort(data1, new Comparator() { @Override public int compare(final Integer[] entry1, final Integer[] entry2) { final Integer time1 = entry1[1]; final Integer time2 = entry2[1]; return time2.compareTo(time1); } }); System.out.println(“====”); for (final Integer[] s : data1) { System.out.println(s[0] + ” ” + s[1]); } 要么 final String[][] […]

如果接收到无效的JSon,则不会调用ExceptionMapper

我使用Jersey 2.5.1和Jackson 2.2。 用于构建JSON Rest Web服务。 我有点了,并且运行了2个ExceptionMappers但是对于“not-json”请求,应用程序没有抛出任何exception! ExceptionMapper如果抛出NullPointerException,将调用它 如果JSon Mapping出现问题,将调用ExceptionMapper 我的问题:1。请求正文:{}工作2.请求正文:{}与应用程序端NullPointer调用第一个exception映射器3.请求正文:“jibberish”不调用任何东西(没有被任何ExceptionMapper捕获)导致没有exception被抛出。 不幸的是,响应主体是这样的:无法识别的字段“xxx”(类com.sample.MyDto),未标记为可忽略(9个已知属性……)但我想自定义错误消息,因为我总是返回一个JSon对象。

检测用户进行的屏幕分辨率更改(Java Listener?)

我有一个Java应用程序启动,创建一个GUI,并且工作得很好。 如果用户更改屏幕分辨率(从1440×900切换到1280×768),我希望能够收听该事件。 有任何想法吗? PS – 我想在事件/监听器模式下执行此操作,而不是在轮询模式下执行此操作,这样就不会浪费额外的CPU周期,例如定时器每隔N秒不断轮询屏幕大小以查看它是否已更改。