我有一个主线程,在该线程中我开始一个新线程.(子线程).该子线程打开服务器套接字并开始侦听连接.我希望该线程停止执行并关闭它初始化的任何内容(如Socket),当主线程从外部获取消息时(从那里得到消息不是关注点).我应该如何停止线程并关闭所有连接是我想要的.
我应该使用共享变量吗?这样当主线程收到消息时它应该修改它,子线程应该不断检查该共享变量的变化?
我该如何实施呢?一些有用的链接可能有帮助或示例代码?
我试过的内容如下:在主线程中我声明了一个变量
flag=0;
Run Code Online (Sandbox Code Playgroud)
当主线程收到消息时,它会设置
flag = 1 ;
Run Code Online (Sandbox Code Playgroud)
并且线程监听更改,如下所示:
void ()run{
while(true){
if(flag==1){
break;
}
sock1 = Ssocket.accept();
}
Run Code Online (Sandbox Code Playgroud)
但上面的代码根本不起作用.我该怎么办?
我确实需要帮助来解决此问题:
我正在开发一个应用程序,以使用蓝牙将文件从应用程序传输到其他手机。当我想传输图像文件时,代码的一部分如下:
intent.setType("image/*");
i.putExtra(i.EXTRA_STREAM, uri);
//here uri has the URI of the image that I want to send.
Run Code Online (Sandbox Code Playgroud)
android清单文件如下:
<intent-filter>
<action android:name="android.intent.action.MAIN"
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:mimeType="image/*" />
<data android:host="*" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
和代码工作正常。现在我的问题是:同样,我想发送一个由以下行创建的文件:
f = File.createTempFile("card", ".XCard", getExternalCacheDir());
Run Code Online (Sandbox Code Playgroud)
该文件的名称应如下所示:
card12434247.Xcard
Run Code Online (Sandbox Code Playgroud)
现在,我在上面发布的代码中需要进行哪些修改?我应该如何在intent-filter中编写mimeType?
应该是什么行:
intent.setType(...)?
Run Code Online (Sandbox Code Playgroud)
我应该如何修改它以便蓝牙能够处理此文件
xyz.Xcard ??
Run Code Online (Sandbox Code Playgroud)
我应该如何声明通过蓝牙发送文件时需要的自定义mime类型?需要吗?请帮忙!!
我想存储JSONObject
在文件中。为此,我将对象转换为字符串,然后将其存储在文件中。我使用的代码是:
String card_string = card_object.toString();
//card_object is the JSONObject that I want to store.
f = new File("/sdcard/myfolder/card3.Xcard");
//file 'f' is the file to which I want to store it.
FileWriter fw = new FileWriter(f);
fw.write(card_string);
fw.close();
Run Code Online (Sandbox Code Playgroud)
该代码按我的意愿工作。现在,我想从文件中检索该对象。我该怎么办?我对使用什么读取文件感到困惑?一个InputStream
或FileReader
或BufferedReader
或什么。我是JAVA / android开发的新手。
请帮忙。欢迎用简单的语言详细说明在不同情况下(例如这样)要使用哪些I / O功能。我看过文档,但是欢迎您提出建议。