Как начать деятельность с 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);
Другие вопросы по тегам