1
我有一个活动片段,其中有一个YouTubeThumbnailView
。该视图是从一个异步任务设置:泄漏并释放YouTubeThumbnailLoaders
public class MyFragment extends Fragment {
private YouTubeThumbnailView mThumbnailView;
public class FetchThumbnailTask extends AsyncTask<> implements YouTubeThumbnailView.OnInitializedListener {
protected void onPostExecute(String videoId) {
mThumbnailView.setTag(videoId);
mThumbnailView.initialize(YOUTUBE_DATA_API_KEY, this);
}
@Override
public void onInitializationSuccess(YouTubeThumbnailView view, YouTubeThumbnailLoader loader) {
loader.setVideo((String) view.getTag());
}
}
}
这会导致以下错误,当我启动(或有时打从后退按钮只有当)在缩略图视频YouTubeStandalonePlayer
(点击缩略图时) :
E/ActivityThread: Activity com.example.app.MyActivity has leaked ServiceConnection [email protected] that was originally bound here
android.app.ServiceConnectionLeaked: Activity com.example.app.MyActivity has leaked ServiceConnection [email protected] that was originally bound here
我以为这曾与在文档中发现的有关何时与他们所做的释放YouTubeThumbnailLoader
S上的警告做。正如在其他的StackOverflow问题的建议,我试图从onInitializationSuccess
节省MyFragment
装载机为mThumbnailLoader
,并在点击动作释放它:
@Override
public void onInitializationSuccess(YouTubeThumbnailView view, YouTubeThumbnailLoader loader) {
loader.setVideo((String) view.getTag());
mThumbnailLoader = loader;
}
@Override
public void onClick(View v) {
if (mThumbnailLoader != null) {
mThumbnailLoader.release();
}
Intent intent = YouTubeStandalonePlayer.createVideoIntent(getActivity(), YOUTUBE_DATA_API_KEY, (String) v.getTag());
startActivity(intent);
}
如何正确释放加载器来避免这个问题?