Titanium:为什么startActivityForResult的回调没有发生?

时间:2012-03-21 09:26:05

标签: android android-intent titanium titanium-mobile appcelerator-mobile

我正在尝试从Forging Titanium(第9集)中获取IntentCookbook示例应用程序。

此处代码:https://github.com/appcelerator-developer-relations/Forging-Titanium/tree/master/ep-009/IntentCookbook

大多数exaples工作正常,但是当使用“startActivityForResult(intent,callback)”函数时,回调不会被激活。此外,在执行“捕捉和查看图像”时,应用程序将在从相机返回后以横向显示(我假设因为它没有意识到相机的内容已经完成并且应该返回纵向方向。)

我正在使用Titanium sdk 1.8.2和V8-runtime。我在模拟器(android sdk 2.3.3和3.0)以及运行2.3.3和2.3.4的两个实际设备上尝试了这个,但它们都表现出相同的行为。

有谁可以告诉我为什么这对我不起作用?

编辑:尝试“选择并编辑联系人”时,这是日志输出。

I/ActivityManager(   62): Displayed com.appcelerator.IntentCookbook/org.appcelerator.titanium.TiActivity: +350ms
I/ActivityManager(   62): Starting: Intent { act=android.intent.action.PICK typ=vnd.android.cursor.dir/person cmp=com.android.contacts/.ContactsListActivity } from pid 413
I/ContactsListActivity(  194): Called with action: android.intent.action.PICK
I/ActivityManager(   62): Displayed com.android.contacts/.ContactsListActivity: +511ms
W/InputManagerService(   62): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@405efe50 (uid=10006 pid=194)

1 个答案:

答案 0 :(得分:1)

我知道这个问题已经过时了,但如果有人仍面临类似的问题,也许我的解决方案可行。当我这样做时,我的代码没有工作:

var activity = Ti.Android.currentActivity;
activity.startActivityForResult(intent, function(e){
    // your code
});

但是在我改变它之后它才起作用:

var activity = $.yourWindowId.getActivity(); // this should be the window you are on
activity.startActivityForResult(intent, function(e){
    // your code
});