Проект Shatter
Описание проекта:
Демонстрация эффекта:
Инструкция по установке:
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/releases/'
}
}
}
dependencies {
implementation('com.gitee.chinasoft_ohos:Shatter:1.0.0')
......
}
В среде SDK6 и DevEco Studio 2.2 Beta1 проект можно запустить напрямую. Если запуск не удаётся, удалите файлы .gradle, .idea, build, gradle и build.gradle и создайте новый проект на основе вашей версии. Затем скопируйте соответствующие файлы из нового проекта в корневой каталог.
Использование:
Способ 1: Чтобы Shatter отслеживал весь жизненный цикл AbilitySlice, реализуйте интерфейс ShatterAbilitySliceInterface в классе BaseAbilitySlice. Переопределите необходимые методы жизненного цикла, например:
public class BaseAbilitySlice extends AbilitySlice implements ShatterAbilitySliceInterface {
static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "MY_TAG");
private ShatterManager mShatterManager;
/**
* getShatterManager
*
* @return ShatterManager
*/
public ShatterManager getShatterManager() {
if (mShatterManager == null) {
mShatterManager = new ShatterManager(this);
}
return mShatterManager;
}
@Override
public void onStart(Intent intent) {
super.onStart(intent);
HiLog.info(LABEL, "BaseAbilitySlice onStart() called");
dispatch(LifeEvent.ON_START, intent);
}
@Override
public void onActive() {
super.onActive();
dispatch(LifeEvent.ON_ACTIVE);
}
//...
/**
* Разделение событий жизненного цикла
*
* @param event
* @param args
*/
protected void dispatch(String event, Object... args) {
HiLog.info(LABEL, getClass().getSimpleName() + " dispatch " + event + "() --");
MethodExecutor.scheduleMethod(event, getShatterManager(), args);
}
}
Способ 2: Если необходимо отслеживать только часть жизненного цикла, добавьте следующий код в метод onCreate() класса BottomShatter:
public class BottomShatter extends Shatter {
static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "MY_TAG");
private static final String TAG = "BottomShatter";
private static final int REQUEST_CODE = 100;
private Button mBottomBtn;
@Override
public String getTag() {
return TAG;
}
@Override
protected int getLayoutResId() {
return kale.ui.ResourceTable.Layout_shatter_bottom;
}
@Override
public void onBindComponent(Component rootView) {
mBottomBtn = (Button) findViewById(kale.ui.ResourceTable.Id_btn_start);
mBottomBtn.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
Intent secondIntent = new Intent();
Operation operation = new Intent.OperationBuilder()
.withDeviceId("")
.withBundleName("kale.ui")
.withAbilityName("kale.ui.ability.PagerAbility")
.build();
secondIntent.setOperation(operation);
startAbilityForResult(secondIntent, REQUEST_CODE);
}
});
}
@Override
public void onAbilityResult(int requestCode, int resultCode, Intent data) {
super.onAbilityResult(requestCode, resultCode, data);
HiLog.info(LABEL, "bottom onAbilityResult() called with: requestCode = [" + requestCode + "], resultCode = ["
+ resultCode + "], data = [" + data + "]");
}
}
Тестирование:
CodeCheck — код протестирован без ошибок. CloudTest — код протестирован без ошибок. Проверка на вирусы — прошла успешно. Текущая версия demo функционально не отличается от исходного компонента.
Версия:
1.0.0
Авторские права и лицензии:
Copyright 2016-2019 Jack Tony
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
``` ГАРАНТИИ ИЛИ УСЛОВИЯ ЛЮБОГО РОДА, явные или подразумеваемые.
См. Лицензию для конкретного языка, регулирующего разрешения и
ограничения по Лицензии.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )