当前位置: 首页>>代码示例>>C++>>正文


C++ JNIContext::deleteGlobalRef方法代码示例

本文整理汇总了C++中JNIContext::deleteGlobalRef方法的典型用法代码示例。如果您正苦于以下问题:C++ JNIContext::deleteGlobalRef方法的具体用法?C++ JNIContext::deleteGlobalRef怎么用?C++ JNIContext::deleteGlobalRef使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在JNIContext的用法示例。


在下文中一共展示了JNIContext::deleteGlobalRef方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

CXXContext::~CXXContext()
{
	JNIContext *jniContext = JNIContext::sharedInstance();

	ectx_method_createProxiedCallback = 0;

	if (ectx_class != 0)
	{
		jniContext->deleteGlobalRef(ectx_class);
		ectx_class = 0;
	}

	if (ectx_object != 0)
	{
		jniContext->deleteGlobalRef(ectx_object);
		ectx_object = 0;
	}

	if (actx_object != 0)
	{
		jniContext->deleteGlobalRef(actx_object);
		actx_object = 0;
	}

	sm_sharedInstance = 0;
}
开发者ID:proxy-gen,项目名称:codegen,代码行数:26,代码来源:CXXContext.cpp

示例2: deregisterProxyComponent

void CXXContext::deregisterProxyComponent(long contextAddress)
{
	LOGV("deregisterProxyComponent contextAddress %ld", contextAddress);
	JNIContext *jniContext = JNIContext::sharedInstance();
	pthread_mutex_lock(&proxyComponentMapMutex);
	proxyComponentMap[contextAddress] = 0;
	std::map<long,jobject>::const_iterator iter;
	for (iter = proxyComponentMap.begin(); iter != proxyComponentMap.end(); iter++)
	{
		if ((*iter).first == contextAddress)
		{
			jobject externalObject = (jobject) (*iter).second;
			LOGV("deregisterProxyComponent erasing contextAddress %ld", contextAddress);
			proxyComponentMap.erase(contextAddress);
			proxyComponentRefCountMap[externalObject]--;
			if (proxyComponentRefCountMap[externalObject] <= 0)
			{
				proxyComponentRefCountMap.erase(externalObject);
				jniContext->deleteGlobalRef(externalObject);
			}
			break;
		}
	}
	pthread_mutex_unlock(&proxyComponentMapMutex);
}
开发者ID:proxy-gen,项目名称:codegen,代码行数:25,代码来源:CXXContext.cpp

示例3: setAndroidContext

void CXXContext::setAndroidContext(jobject applicationContext)
{
	LOGV("setApplicationContext applicationContext %ld", (long) applicationContext);
	JNIContext *jniContext = JNIContext::sharedInstance();
	jniContext->deleteGlobalRef(actx_object);
	actx_object = jniContext->localToGlobalRef(applicationContext);
	LOGV("updated actx_object %ld", (long) actx_object);
}
开发者ID:proxy-gen,项目名称:codegen,代码行数:8,代码来源:CXXContext.cpp

示例4: deleteProxyComponent

bool CXXContext::deleteProxyComponent(jobject externalObject)
{
	LOGV("deleteProxyComponent externalObject %ld", (long) externalObject);
	JNIContext *jni = JNIContext::sharedInstance();
	bool success = false;
	jni->pushLocalFrame();
	if (jni->newLocalRef(externalObject) != 0)
	{
		jobject globalRef = jni->newGlobalRef(externalObject);
		jni->deleteGlobalRef(globalRef);
		success = true;
	}
	jni->popLocalFrame();
	return success;
}
开发者ID:proxy-gen,项目名称:codegen,代码行数:15,代码来源:CXXContext.cpp


注:本文中的JNIContext::deleteGlobalRef方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。