我有一个简单的问题需要解决,但我不知道该怎么做。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