线程通常以两种方式设计(参见java教程):通过扩展Thread类或通过实现Runnable类.无论哪种方式,您都需要指定在线程内运行的内容.
我设计了一个类,一个适用于在线资源的适配器,可以检索不同类型的信息.该类由getInformationOfTypeA()和getInformationOfTypeB()等方法组成.两者都包含连接到在线资源的代码,因此两者都需要进行线程化以避免死锁.
问题是:我该如何设计?我可以像下面这样做,但后来我只能实现一个方法:
public class OnlineResourceAdapter implements Runnable {
public void run() {
//get stuff from resource
getInformationOfTypeA();
}
public static void main(String args[]) {
(new Thread(new OnlineResourceAdapter ())).start();
}
public void getInformationOfTypeA(){
//get information of type A
}
public void getInformationOfTypeB(){
//get information of type B
}
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是为每个方法创建单独的类,但这对我来说似乎不自然.
顺便说一句:我正在j2me中开发我的应用程序
更新:
感谢您的回复,我认为最适合使用以下方法作为方法:
你觉得这怎么样:
public class OnlineResourceAdapter{
public void getInformationOfTypeA(){
Thread t = new Thread(new Runnable() {
public void run() {
//do stuff here
}
});
t.start();
} …Run Code Online (Sandbox Code Playgroud) 我需要一个适用于J2ME/CLDC 1.1的基本JSON解析器.
Google搜索会在此返回大量答案(有些甚至在stackoverflow上),但似乎都指向不再可用的库和解决方案(例如,批次指向应该在json.org上的实现)网站,但至少我找不到任何不是J2SE的东西).
到目前为止,我最大的希望是链接源:https://meapplicationdevelopers.dev.java.net/mobileajax.html,但是从那个我甚至找不到直接下载代码的方法.
鉴于Java在所有其他方面的成熟状态,肯定有一些地方我可以使用预编译的JAR来从J2ME解析JSON吗?
我尝试从Windows 7 x64卸载Java ME SDK,但它对我不起作用.
如果我选择Uninstall我获得进度条,那么它就会消失,但软件仍在那里.
在最初的几次我做了这个,我得到了相同的错误消息,因为我需要帮助卸载Java ME SDK:
... show message dialog
title: Critical Error
message: Cannot load native library from path: native/jmesdk/windows/windows-x86.dll
Exception:
java.lang.UnsatisfiedLinkError:
C:\Users\Jonas\AppData\Local\Temp\nbi-8367277139934329064.tmp: Can't load IA 32-bit .dll on a AMD 64-bit platform
Run Code Online (Sandbox Code Playgroud) 我知道在J2ME中CommConnection是使用时使用的连接serial port.我知道有这些openInputStream和openOutputStream方法,但实际上我不知道如何将数据从我的MIDLet传输到COM端口(插入手机电缆的USB端口,手机是Alcatel OT-806D).例如,我想发送文本"Hello world".怎么实现呢?
这是代码:
J2ME:
import java.io.IOException;
import java.io.OutputStream;
import javax.microedition.io.CommConnection;
import javax.microedition.io.Connector;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.*;
public class SerialPortMidlet extends MIDlet implements CommandListener, Runnable {
private Command upload = new Command("upload", Command.SCREEN, 0);
private Command exit = new Command("exit", Command.SCREEN, 1);
private Form f = new Form("test serial port");
private Thread uploadThread;
private CommConnection com;
private OutputStream os;
public SerialPortMidlet()
{
f.addCommand(upload); …Run Code Online (Sandbox Code Playgroud) 我有一个J2ME应用程序,它使用蓝牙并在对等移动设备中搜索文件并下载它.我希望让我的应用程序在后台运行,无论何时我接到电话,或者消息以及稍后几秒后恢复,有没有人就此工作请分享您的经验.有没有办法在后台运行Midlet?
我正在考虑在业余时间制作一些移动应用程序,我希望能够将它们放在网上供任何人使用(可能是开源的).我刚刚和PyS60合作过,我真的很喜欢它.
我的问题是,我不想在这些应用程序上花钱(我不打算以任何方式从他们那里赚钱)而且我要正确分发PyS60应用程序,看起来我需要购买昂贵的发行商许可证,然后每次我想要一个应用程序签名仍然支付.我知道我可以分发脚本,但这需要最终用户下载pys60解释器......
我也很乐意看到其他语言/平台.iPhone应用程序需要一个开发许可证,我需要一个Mac来编译代码(我没有,我是一个Linux x86用户).
J2ME应用程序似乎需要"Java Verified"才能进入OVI商店.我认为它们是否通过其他方式分发?
基本上我正在寻找可以在我的手机上运行的应用程序(N95),如果其他人看到它,我可以说从www.example.com/myapp获取它就可以了.我也有兴趣使用像OVI商店这样的东西来分发它.但我不想花大钱.
任何人对此事有任何经验或知识吗?J2ME是我唯一的选择吗?
我必须开发一个Java ME(以前称为J2ME)应用程序,该应用程序将利用蓝牙技术与其他移动设备上的其他实例进行通信.
我知道NetBeans和Eclipse都提供了一个集成环境来开发Java ME应用程序.
哪一个更成熟稳定?哪一个提供更好的工具?
我的应用程序必须与运行相同应用程序的更多设备进行通信,因此我需要使用运行它的多个模拟器实例来测试我的应用程序,并允许这些模拟器实例通过Java ME蓝牙API相互查看.
我能做到吗?
我们正在尝试在我们的嵌入式平台(700 MHz MIPS 74K,128-256 MB内存)上支持Java环境.在阅读了这篇文章并搜索了一下之后,我想出了一个简短的列表:
我对Java及其运行时环境很陌生.对于在MIPS 74K上运行的Java VM,您有什么建议?
我正在为Android开发一个应用程序.只是一般性问题,是否可以连接到公开不可发现的设备?
提前致谢.