Прежде всего: Я больше в Android программированияКак передать объект обслуживания в MyActivity?
я создал простой TCP сокета с помощью службы.
Клиент подключается к серверу при нажатии кнопки в MainActivity
.
Сейчас я хочу создать PrintWriter
объект в MainActivity
используя Socket
объект обслуживания.
Я познакомился с объектами с Service
до Activity
с использованием JSON.
Я искал через Интернет, но не мог понять, как я могу его передать.
Пожалуйста, дайте мне простой пример кода, чтобы передать объект.
MyService.java
public class MyService extends Service{
public static Socket clientsocket;
public static PrintWriter printer;
SendMessage sender;
@Override
public void onCreate() {
Toast.makeText(this, "Created", Toast.LENGTH_LONG).show();
super.onCreate();
}
@Override
public void onDestroy() {
Toast.makeText(this, "Stoped", Toast.LENGTH_LONG).show();
if(clientsocket!=null){
try{
clientsocket.close();
Toast.makeText(this, "Socket Closed", Toast.LENGTH_LONG).show();
}catch(IOException e){
e.printStackTrace();
}
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Running", Toast.LENGTH_LONG).show();
SendMessage sender=new SendMessage();
sender.execute();
return super.onStartCommand(intent, flags, startId);
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
class SendMessage extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
try {
clientsocket = new Socket("192.168.237.1", 6666);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
if(clientsocket!=null){
Toast.makeText(MyService.this, "Connected", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(MyService.this, "Lost Connection", Toast.LENGTH_LONG).show();
}
super.onPostExecute(result);
}
}}
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void start(View v){
startService(new Intent(this,MyService.class));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
class PrintMessage extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... arg0) {
return null;
}
}
@Override
protected void onDestroy() {
stopService(new Intent(this,MyService.class));
super.onDestroy();
}}
Теперь мне нужен четкий & полный код для обоих MyService.java (как передать объект Т.е в этом случае Socket
объекта clientsocket
) и MainActivity.java (как протащить пройденный объект Ie clientsocket
и использовать его для создания объекта PrintWriter
)
как это JSON, и может транслировать намерение с помощью простой дополнительной строки. Кроме того, если вы привязываете активность, вы можете вернуть метод интерфейса «sendData (String)», чтобы все, что клиент мог отправить в json – eduyayo
Если возможно, вы можете дать мне простой код! –
intents: http://android-coding.blogspot.com.es/2011/11/pass-data-from-service-to-activity.html – eduyayo