我正在尝试制作一个自定义的android库。
将My LIb调用为.NET Framework,并将其作为.NET Framework的一部分。
mylib = new Mylib();
JSONObject dict = new JSONObject();
dict.put("Daata",1);
mylib.initialize(dict);
Mylib代码。
public class Mylib {
public Mylib() {
}
public void initialize(JSONObject message) throws ParseException {
System.out.println(message);
System.out.println("done");
}
}
问题:
我想启动一个非活动类,它可以启动Messenger客户端与另一个应用程序进行交互.所以我试了这个。
Intent intent = new Intent( Mylib.this , MySecondLib.class );
我得到了这个。
Cannot resolve constructor error
所以,我试着将我的Mylib类扩展为 extends AppCompatActivity
.和写作
Intent intent = new Intent( Mylib.this , MySecondLib.class );
startActivity(intent);
并得到这个错误。
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
我看到类似的错误,当我传递:Intent intent = new Intent( getApplicationContext() , MySecondLib.class );
现在我在Mylib类的构造函数中传递应用程序上下文作为参数,然后运行这个。Intent intent = new Intent( context , MySecondLib.class );
但我还是得到了这个错误。
java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread android.app.ActivityThread.getApplicationThread()' on a null object reference
所以,我做了 context.startActivity(intent);
并在活动类中工作。
但如果Mysecondlib也是一个非活动类,而我想在Mysecondlib中启动一个Messenger客户端呢?
所以,我尝试了......官方示例 消息服务的客户端代码.
不得不做了一些改动。Replaced the bindservice with context.bindservice
但仍然无法从服务器端接收信息。
非常感谢
解决了。
在执行过程中增加延迟 service.send()
因为据我所知 context.bindservice is an async call
所以解决。
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
mservice.send(msg)
}
}, 5000);