Как сохранить мою активность, подобную "поисковой активности" в Tooleap?

Я хочу иметь возможность "сохранять" мою активность, чтобы при щелчке пользователя на значке мини-приложения мои действия не приходилось перезагружать каждый раз.

Такое поведение реализовано в поисковой активности Tooleap, когда я снова открыл поисковую активность из любого места, поисковая активность сразу отображается (индикатор загрузки не отображается).

Я уже запустил свою активность tooleap как постоянную, вот мой код для запуска мини-приложения

TooleapPersistentMiniApp miniApp = new TooleapPersistentMiniApp(this, TooleapTestActivity.class);

miniApp.allowUserToDismiss(true);
miniApp.contentTitle = getResources().getString(R.string.app_name);
miniApp.contentText = getResources().getString(R.string.app_name);
miniApp.bubbleBackgroundColor = 0xFF03A9F4;
miniApp.notificationText = getResources().getString(R.string.tooleap_start_notif);
miniApp.when = new Date();

Tooleap.getInstance(this).addMiniApp(miniApp);

Вот мой AndroidManifest, который напрямую связан с tooleap

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myapp.package"
    android:installLocation="internalOnly" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <activity android:name=".TooleapTestActivity"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:launchMode="singleInstance"
        android:taskAffinity=".tooleap">
        <intent-filter>
            <action android:name="com.tooleap.sdk.TOOLEAP_SHOW"/>
        </intent-filter>
    </activity>

    <service android:name="com.tooleap.sdk.TooleapAppService"/>
    <service android:name="com.tooleap.sdk.TooleapUIService"
        android:process=":UIService"
        android:exported="true">
        <intent-filter>
            <action android:name="com.tooleap.sdk.BIND_UI_SERVICE" />
        </intent-filter>
    </service>
    <receiver android:name="com.tooleap.sdk.TooleapReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_REPLACED"/>
            <data android:scheme="package"/>
        </intent-filter>
        <intent-filter>
            <action android:name="com.tooleap.sdk.TOOLEAP_ACTION"/>
        </intent-filter>
    </receiver>
</manifest>

Вот детали потока:

  1. Я щелкнул значок мини-приложения
  2. Tooleap открыть боковую панель и показывает индикатор загрузки
  3. После завершения загрузки tooleap покажет мою активность TooleapTestActivity
  4. Я проводил влево, чтобы скрыть боковую панель tooleap, tooleap показать еще один индикатор загрузки
  5. повторите шаг 1:)

Что я здесь не так делаю? Кажется, я не могу вести себя так же, как постоянство Tooleap Search Activity.

1 ответ

Решение

Я один из разработчиков Tooleap SDK.

Краткий ответ: Ваше мини-приложение всегда будет иметь спиннер (индикатор загрузки) внутри бокового экрана, когда вы нажимаете на плавающий пузырь.

Длинный ответ:

Спиннер просто для галочки. При первом нажатии на плавающий пузырь ваша деятельность создается (onCreate называется). После этого всякий раз, когда вы открываете / закрываете плавающий боковой экран, onResume / onPause называются.

Ваша деятельность возобновляется, как и любая обычная деятельность (без перезагрузки или что-то в этом роде). Возобновление активности может занять несколько сотен миллисекунд (в зависимости от логики внутри метода onResume действия). В течение этого времени показывается счетчик.

Примечание. Если вы чувствуете, что всегда видите вращающийся элемент в течение длительного периода времени, проверьте, не нарушается ли ваша активность (onDestroy) каждый раз, когда вы закрываете боковой экран. Одной из причин этого может быть явный вызов finish() внутри кода активности. Если onDestroy называется, в следующий раз, когда вы нажимаете на плавающий пузырь onCreate будет вызван снова, и это может занять больше времени, чтобы ваше приложение появилось.

Что касается мини-приложения search, то это специальное плавающее окно, а не обычное занятие. Поскольку он является частью Tooleap SDK, его можно показывать без счетчика.

Другие вопросы по тегам