【发布时间】:2019-05-03 03:49:50
【问题描述】:
我有一个使用import io.flutter.plugin.common.MethodChannel 的类实例的类,但现在我想将该类实例传递给我可以调用它的服务,但我无法绕过它。
我尝试过使用 putExtra,但我似乎无法找到从服务端获取它的方法。
例如:
Intent playIntent = new Intent(activity.getApplicationContext(), MusicPlayerService.class);
playIntent.putExtra("activeAudioUrl", activeAudio);
playIntent.putExtra("channelInstance", channel);
activity.startService(playIntent);
这是我试图从中获取数据的服务类:
public int onStartCommand(Intent intent, int flags, int startId) {
String activeAudio = intent.getStringExtra("activeAudioUrl");
MethodChannel methodChannel = intent.getParcelableExtra("channelInstance");
...
}
【问题讨论】:
-
基本上如果你想在一个intent中传递一个类,这个类需要实现
Parcelable接口。但是,我怀疑您是否想传递MethodChannel的实例。您将泄漏与频道相关的数据。你为什么要这么做? -
MethodChannel是否实现了Parcelable?另一方面,您可以绑定服务并使用Binder.. 设置实例 -
no MethodChannel 没有实现
Parcelable -
如何绑定服务,能否给个代码示例。我是 java 新手,我正在尝试为需要与 android 一起使用的框架创建一个插件。
-
也许this方法可以解决你的问题。