我正在尝试从FREFunction开始并在我的flex应用程序中使用facebooks的SSO。
我在我的FREFunction中做过:
@Override
public FREObject call(FREContext context, FREObject[] args) {
Intent myIntent = new Intent(context.getActivity(), FacebookSSO.class);
context.getActivity().startActivity(myIntent);
return null;
}
我使用logcat:
I/ActivityManager( 1322): Starting activity:
Intent{ cmp=air.testapp/com.test.android.ane.activity.FacebookSSO } from pid...
但我的onCreate方法中的日志调用是FacebookSSO.java没有显示:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
Log.d("FacebookSSO", "onCreate BEGIN.");
Log.d("FacebookSSO", "onCreate END.");
}
我尝试以不同的方式创建myIntent,比如使用setClass。 我究竟做错了什么?
答案 0 :(得分:1)
你解决了这个问题吗?
您是否尝试将类添加到应用程序描述符中的清单添加中?
<android>
<manifestAdditions><![CDATA[
<manifest android:installLocation="auto">
<uses-permission android:name="android.permission.INTERNET"/>
<application>
<activity android:name="com.test.android.ane.activity.FacebookSSO"></activity>
</application>
</manifest>
]]></manifestAdditions>
</android>
答案 1 :(得分:0)
您正在使用的Intent constructor期望将Context作为其参数(请记住Activity 也是上下文。)
因为构造函数需要一个Context而你是从一个上下文开始的,所以不需要调用getActivity()
。另外startActivity()
是Context的方法,所以你不应该在第二行中需要getActivity()
。但是我不知道这是否会导致你看到的错误。
以这种方式尝试您的代码:
Intent myIntent = new Intent(context, FacebookSSO.class);
context.startActivity(myIntent);