Service+Broadcast socket更新图片显示

编程入门 行业动态 更新时间:2024-10-10 01:18:22

Service+Broadcast socket更新<a href=https://www.elefans.com/category/jswz/34/1770705.html style=图片显示"/>

Service+Broadcast socket更新图片显示

首先在Service文件中,建立socket连接,以及相应的输入流,并完成广播的发送:

public class MyService extends Service {private ServerSocket serverSocket;private Socket socket;private InputStream inputStream;public int onStartCommand(final Intent intent, int flags, int startId) {new Thread(new Runnable() {@Overridepublic void run() {try {serverSocket = new ServerSocket(9600);socket = serverSocket.accept();inputStream = socket.getInputStream();int size = 65000;byte[] bt = new byte[size];while(true) {Intent pictureIntent = new Intent();pictureIntent.putExtra("picture_car",bt);pictureIntent.setAction("com.melo.hurryup.Myservice_Picture");sendBroadcast(pictureIntent);Thread.sleep(80);}}catch (Exception e) {e.printStackTrace();Log.i("test","连接失败");Toast.makeText(getApplicationContext(), "无法连接", Toast.LENGTH_LONG).show();}}}).start();

在Activity中完成BroadcastReceiver的注册,并建立一个新的类继承BroadcastReceiver,在这个继承类中接收传输的byte数据,并进行Bitmap处理,以及赋给imageview,实现图片的更新。

public class MainActivity extends AppCompatActivity  {mTimeBroadcast = new MyTimeBroadcast(); mTimeBroadcast = new MyTimeBroadcast();IntentFilter filter1 = new IntentFilter();filter1.addAction("com.melo.hurryup.Myservice_Picture");registerReceiver(mTimeBroadcast, filter1);public class MyTimeBroadcast extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {byte[] get_data = intent.getByteArrayExtra("picture_car");Bitmap bitmap = BitmapFactory.decodeByteArray(get_data,0,65000);image1.setImageBitmap(bitmap);}}
}

 

更多推荐

Service+Broadcast socket更新图片显示

本文发布于:2024-02-11 23:52:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1684405.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图片   Service   Broadcast   socket

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!