Unity Android 交互注意问题

Unity 中调用java代码基本没什么问题,java通过AndroidJavaProxy回调Unity时,数据只能支持string,int,float,bool,AndroidJavaObject。AndroidJavaObject类似一个object,可以通过这个类,去调用类中的数据,所以任何数据都可以传输。

  public override void JavaObjectCallBack(AndroidJavaObject _data)
    {
        int count = _data.Call<int>("size");
        for (int i = 0; i < count; i++)
        {
            AndroidJavaObject appobj = _data.Call<AndroidJavaObject>("get", i);
            AppData _app = new AppData();
            _app.appname = appobj.Get<string>("appname");
            _app.imageData = appobj.Get<byte[]>("imageData");
            _app.packageName = appobj.Get<string>("packageName");
            _app.activityName = appobj.Get<string>("activityName");
            _app.width = appobj.Get<int>("width");
            _app.height = appobj.Get<int>("height");
            Debug.Log(_app.packageName);
            refreshApp.Add(_app);
        }
    }

但是使用java监听安卓事件的时候需要注意,例如监听程序卸载,安装之类的。直接回调Unity可能会和Unity本身的生命周期冲突,类似于多线程。因为java代码的监听,是开启了一个单独线程的。因为需要在Update里面更新数据的,和网络的多线程类似。

发布了31 篇原创文章 · 获赞 2 · 访问量 2791

猜你喜欢

转载自blog.csdn.net/BDDNH/article/details/99726766