簡體   English   中英

如何在Android中額外使用Socket作為Intent?

[英]How to use Socket as Intent extra in Android?

我想啟動一個服務,該服務需要通過打開的Socket連接發送和接收東西。 Socket是對象的字段,如下所示:

public class A implements Serializable {
    Socket socket;
}

我打算將這個對象作為Intent的額外對象傳遞:

A a = getInstanceOfA(); // Get an instance of A from somewhere.
intent.putExtra("A", a);

當然, A是可序列化的,因為它必須是可序列化的,以便將其作為附加意圖使用。 可是等等。 套接字不可序列化。

我該如何解決?

  • 我可以將套接字標記為transient ,以便不進行序列化嗎? 還是在這樣做時不再能夠通過該套接字發送一些字節?
  • 還是應該退出使用ServiceBroadcastReceiver並使用其他方法?
  • 還是有其他方法可以實現上述目標?

PS:我已經讀過一些有關在Activity之間傳輸InputStreamSocket的知識,但是給出的答案不是很清楚。

沒有一些可能的骯臟黑客,這是不可能的。

正如克里斯·斯特拉頓Chris Stratton)所提到的那樣,可以通過用一個靜態物體或單件物品找回問題來繞過該問題。

或者,可以更改應用程序的結構,因此服務本身可以創建Socket或對其進行控制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM