Как начать деятельность с FREFunction?
Я пытаюсь начать работу с FREFunction, чтобы использовать единый вход Facebook в моем приложении Flex.
Я сделал в моей функции:
@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. Что я делаю неправильно?
2 ответа
Вы решили эту проблему?
Вы пытались добавить класс в манифестные дополнения в дескрипторе вашего приложения?
<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>
Используемый вами конструктор Intent ожидает в качестве параметра параметр Context (помните, что Activity также является Context.)
Поскольку конструктор ожидает контекст, а вы начинаете с контекста, не нужно вызывать getActivity()
, Также startActivity()
это метод контекста, поэтому вам не нужно getActivity()
во второй строке тоже. Однако я не знаю, приведет ли это к ошибке, которую вы видите.
Попробуйте свой код следующим образом:
Intent myIntent = new Intent(context, FacebookSSO.class);
context.startActivity(myIntent);