我有一個簡單的問題需要解決,但我不知道該怎麼做。Android:調用從服務到活動的方法
我有一個類擴展了運行一個線程尋找TCP連接的服務。如果有人進來,它會讀取輸入消息。
如果輸入的消息是「START」,我開始一個活動,以這種方式:
Intent dialogIntent = new Intent(getBaseContext(), VoIPCall.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
dialogIntent.putExtra("inetAddress", clientSocket.getInetAddress());
getApplication().startActivity(dialogIntent);
雖然這個活動運行,服務保持運行。在某個時候,我可能會保留「停止」。我想在之前創建的Activity中調用一個方法,但我不確定如何與之交互。
我不想使用靜態方法。我怎麼能這樣做?
非常感謝你,
編輯:我改變了我的代碼如下:
Intent dialogIntent = new Intent("com.voip.rudy.START_CALL");
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
dialogIntent.putExtra("inetAddress", clientSocket.getInetAddress());
getApplication().startActivity(dialogIntent);
而且在清單:
<activity android:name=".VoIPCall">
<intent-filter>
<action android:name="com.voip.rudy.START_CALL" />
<action android:name="com.voip.rudy.STOP_CALL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<category android:name="android.intent.category.DEFAULT" /> was required to avoid having it crash.
編輯:
解決方案給出已經解決了我的問題,但我想實際上在該類上的成員變量上行事,這些變量以前是ini tialized。說我調用構造函數,然後我想回到這個活動,並對成員變量行事。
當我調用一個接一個的動作時,成員變量不會被初始化,它似乎以某種方式創建一個新的活動。無論如何要採取相同的行動,並保持完好的物體嗎?
James
你最好的選擇可能是發送廣播。 – Falmarri 2010-12-01 23:21:19