小编nee*_*rle的帖子

Java中父子线程之间的通信

我有一个主线程,在该线程中我开始一个新线程.(子线程).该子线程打开服务器套接字并开始侦听连接.我希望该线程停止执行并关闭它初始化的任何内容(如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)

但上面的代码根本不起作用.我该怎么办?

java sockets multithreading

7
推荐指数
2
解决办法
5867
查看次数

声明要通过蓝牙发送的“自定义文件”的MIME类型

我确实需要帮助来解决此问题:

我正在开发一个应用程序,以使用蓝牙将文件从应用程序传输到其他手机。当我想传输图像文件时,代码的一部分如下:

     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类型?需要吗?请帮忙!!

android intentfilter android-manifest mime-types

5
推荐指数
1
解决办法
2596
查看次数

从文件中检索JSONObject

我想存储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)

该代码按我的意愿工作。现在,我从文件中检索该对象。我该怎么办?我对使用什么读取文件感到困惑?一个InputStreamFileReaderBufferedReader或什么。我是JAVA / android开发的新手。

请帮忙。欢迎用简单的语言详细说明在不同情况下(例如这样)要使用哪些I / O功能。我看过文档,但是欢迎您提出建议。

file-io android json

2
推荐指数
1
解决办法
6570
查看次数