我有一个Android的应用程序,在与UI不同的线程中(实现Runnable)
我收到一些数据(纬度和经度形式的GPS数据)和这个数据我
想通过传递给Geocoder找到正确的地址......之后Geocoder返回的地址将它存储在数据库中:
我是这样做的:
public class Client implemets Runnable{
public void run()
{
Geocoder myLocation=new Geocoder(getApllicationContext,Locale.getDefault());
}
}
Run Code Online (Sandbox Code Playgroud)
但我在这里得到错误:
Geocoder myLocation=new Geocoder(getApplicationContext,Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)
Runnable不知道谁getApplicationContext是.....我尝试用"this"而不是同样的故事......
现在哪个是传递给Geocoder构造函数的正确上下文????
以下是Geocoder构造函数的外观:
Geocoder myLocation =new Geocoder(context,locale);
Run Code Online (Sandbox Code Playgroud)
在我的活动中,我这样做:
public class Server2 extends Activity {
public void onCreate(Bundle icicle) {
ClientThread_special client = new ClientThread_special(db);//here is where I start thread
new Thread(client).start();
}
}
Run Code Online (Sandbox Code Playgroud)
public class ClientThread_special implements Runnable {
public ClientThread_special(DBAdapter db){
this.db=db;
}
public void run()
{
Geocoder myLocation=new Geocoder(getApllicationContext,Locale.getDefault());
}
}
Run Code Online (Sandbox Code Playgroud)
我该如何修改构造函数
public ClientThread_special(DBAdapter …Run Code Online (Sandbox Code Playgroud) 我有一个带有两个不同线程的Java应用程序,它执行以下操作:
1.第一个线程(它是一个ThreadPool) - 监听一个端口,查找来自五个不同用户的传入连接.
我们打电话给他们:
user1 user2 user3 user4 user5
他们每个人都发送GPS数据.
2.第二个线程同时我的java应用程序监听第二个端口,等待另一个客户端(不同于发送GPS数据的客户端)连接到它.
现在......我有第二个应用程序连接到我刚才描述的java应用程序.
在第二个应用程序中,我有一个列表user1 ... user5,具体取决于我将选择哪个项目(user1 ... 5)我必须从我选择的用户那里收到正确的数据.此外,所有这些数据都将存储在DB中的第二个用户处.
现在任何人都可以给我一个暗示如何在线程之间共享所有这些数据????
我尝试使用Singleton类和BlockingQ,但似乎没有一个适合因为数据丢失!