从android库中调用信使绑定服务

问题描述 投票:4回答:1

我正在尝试制作一个自定义的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

但仍然无法从服务器端接收信息。

非常感谢

java android
1个回答
1
投票

解决了。

在执行过程中增加延迟 service.send() 因为据我所知 context.bindservice is an async call

所以解决。

        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            public void run() {
                mservice.send(msg)
            }
        }, 5000);

© www.soinside.com 2019 - 2024. All rights reserved.