gpt4 book ai didi

java - 意向服务 : why my onHandleIntent is never called?

转载 作者:IT老高 更新时间:2023-10-28 20:24:00 27 4
gpt4 key购买 nike

我正在使用 android xml rpc 来安装服务器。为此,我正在使用和 intentService。唯一的问题是,当服务器类启动时,我的包含服务器的 onHandleIntent 永远不会被调用。

我做了一些研究,发现有人遇到了同样的问题,他通过使用 super class 设法解决了这个问题,但我是编程新手,没有'没有设法做他所做的事==> link

这是我的代码:

package tfe.rma.ciss.be;

import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlrpc.android.MethodCall;
import org.xmlrpc.android.XMLRPCServer;

import android.app.IntentService;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;

import java.io.IOException;
import java.io.StringReader;
import java.net.MalformedURLException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

public class Server extends IntentService {
public String myData="";
public String streamTitle = "",path="";

public void onCreate() {

Log.d("Server", ">>>onCreate()");

}

public Server() {
super("Server");


}
public void onStart (Intent intent, int startId) {
Log.d("Server", ">>>Started()"); }
@Override
protected void onHandleIntent(Intent intent) {
Log.d("Server", ">>>handlingIntent()");
try {
ServerSocket socket = new ServerSocket(8214);
XMLRPCServer server = new XMLRPCServer();
Log.d("Server", ">>>opening on port" + socket);
while (true) {
Socket client = socket.accept();
MethodCall call = server.readMethodCall(client);
String name = call.getMethodName();
if (name.equals("newImage")) {
ArrayList<Object> params = call.getParams();
// assume "add" method has two Integer params, so no checks done
myData = (String)( params.get(0));
//int i1 = (Integer) params.get(1);
server.respond(client, new Object[] {200});
/*intent = new Intent (this, ParseFunction.class);
startService (intent); */

Toast.makeText(this, myData, Toast.LENGTH_SHORT).show();
Log.d("ParseFunction", ">>>Started()");

Intent i = new Intent( this, B.class );

i.putExtra( "Azo", myData);


i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity( i );

} else {
server.respond(client, null);
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}

}

}

最佳答案

如果您到了这里但没有任何效果,请检查您的 list 如下所示:

    <service android:name=".subpackage.ServiceClassName" >
</service>

不是这样的:

    <service android:name=".subpackage.ServiceClassName" />

xml 结束标签有问题。第一个有效。第二个是合法的,但不起作用。

关于java - 意向服务 : why my onHandleIntent is never called?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9080380/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com