Как сохранить мою активность, подобную "поисковой активности" в 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>
Вот детали потока:
- Я щелкнул значок мини-приложения
- Tooleap открыть боковую панель и показывает индикатор загрузки
- После завершения загрузки tooleap покажет мою активность TooleapTestActivity
- Я проводил влево, чтобы скрыть боковую панель tooleap, tooleap показать еще один индикатор загрузки
- повторите шаг 1:)
Что я здесь не так делаю? Кажется, я не могу вести себя так же, как постоянство Tooleap Search Activity.
1 ответ
Я один из разработчиков Tooleap SDK.
Краткий ответ: Ваше мини-приложение всегда будет иметь спиннер (индикатор загрузки) внутри бокового экрана, когда вы нажимаете на плавающий пузырь.
Длинный ответ:
Спиннер просто для галочки. При первом нажатии на плавающий пузырь ваша деятельность создается (onCreate
называется). После этого всякий раз, когда вы открываете / закрываете плавающий боковой экран, onResume
/ onPause
называются.
Ваша деятельность возобновляется, как и любая обычная деятельность (без перезагрузки или что-то в этом роде). Возобновление активности может занять несколько сотен миллисекунд (в зависимости от логики внутри метода onResume действия). В течение этого времени показывается счетчик.
Примечание. Если вы чувствуете, что всегда видите вращающийся элемент в течение длительного периода времени, проверьте, не нарушается ли ваша активность (onDestroy
) каждый раз, когда вы закрываете боковой экран. Одной из причин этого может быть явный вызов finish()
внутри кода активности. Если onDestroy
называется, в следующий раз, когда вы нажимаете на плавающий пузырь onCreate
будет вызван снова, и это может занять больше времени, чтобы ваше приложение появилось.
Что касается мини-приложения search, то это специальное плавающее окно, а не обычное занятие. Поскольку он является частью Tooleap SDK, его можно показывать без счетчика.