android service socket thread,关于android多个activity共享一个service中的socket有关问题

关于android多个activity共享一个service中的socket问题

SocketService.java[/color]

package com.braveboyny.smartsecurity;

import java.net.Socket;

import android.app.Service;

import android.content.Intent;

import android.os.IBinder;

import android.util.Log;

//Handler

public class SocketService extends Service {

private static final String TAG = "MyService";

private boolean isConnect=false;

public static Socket socket; //这里定义了一个静态socket 供其他activity使用

@Override

public void onCreate(){

Log.v(TAG, "onCreate");

}

@Override

public IBinder onBind(Intent intent) {

// TODO Auto-generated method stub

return null;

}

@Override

public void onStart(Intent intent, int startId) {

Log.v(TAG, "onStart");

new Thread() {

@Override

public void run() {

if(isConnect==false)

initSocket();

}

}.start();

}

private void initSocket() {

try {

Log.v(TAG, "iniSocket");

socket = new Socket("192.168.1.90", 8008);

} catch (Exception e) {

e.printStackTrace();

}

}

}

[color=#FF0000]MainActivity.java

package com.braveboyny.smartsecurity;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.io.PrintStream;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.Intent;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.util.Log;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ImageView;

public class MainActivity extends Activity implements OnClickListener {

private boolean initial;

private Button start;

private ImageView imageView;

private Handler handler;

private BufferedInputStream bin;

@SuppressWarnings("unused")

private BufferedOutputStream bout;

private void init() {

Log.e("init==", "xxxxxxxxx");

imageView = (ImageView) this.findViewById(R.id.imageview);

start = (Button) this.findViewById(R.id.start);

start.setOnClickListener(this);

handler = new MyHandler();

initial = false;

}

@Override

/** Called when the activity is first created. */

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

ImageView imageview = (ImageView) this.findViewById(R.id.imageview);

Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.picture);

imageview.setImageBitmap(bm);

Intent intent = new Intent(this, SocketService.class);

startService(intent);

init();

setContentView(R.layout.main);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.menu, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

Intent intent;

switch (item.getItemId()) {

case R.id.mi1:

intent = new Intent(MainActivity.this, ContactActivity.class);

startActivity(intent);

break;

case R.id.mi2:

intent = new Intent(MainActivity.this, ControlActivity.class);

startActivity(intent);

break;

case R.id.mi3:

intent = new Intent(MainActivity.this, SetingActivity.class);

startActivity(intent);

break;

case R.id.mi4:

new AlertDialog.Builder(this)

.setTitle("SmartSecurity")

.setMessage("Copyright@2014,braveboyny,All Rights Reserved ")

.setPositiveButton("确定", null)

.show();

break;

}

return true;

}

@Override

public void onClick(View v) {

new MyThread().start();

}

class MyThread extends Thread {

@Override

public void run() {

try {

if (initial == false) {        //在这里直接用Service中的socket

bin = new BufferedInputStream(SocketService.socket.getInputStream());

bout = new BufferedOutputStream(SocketService.socket.getOutputStream());

OutputStream out = SocketService.socket.getOutputStream();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值