add initialize in isolate
This commit is contained in:
parent
00289ddbde
commit
8e0f79e28e
2 changed files with 18 additions and 5 deletions
|
|
@ -3,15 +3,18 @@ import 'package:dart_framework/subtitle/parser_smi.dart';
|
|||
import 'package:dart_framework/subtitle/parser_srt.dart';
|
||||
import 'package:dart_framework/utils/os_startup.dart';
|
||||
import 'package:dart_framework/utils/system_util.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
|
||||
import 'package:dart_framework/core/application.dart';
|
||||
import 'package:dart_framework/charset.dart';
|
||||
import 'package:dart_framework/platform/isolate_manager.dart' as isolate;
|
||||
|
||||
import 'package:path/path.dart' as path;
|
||||
|
||||
void main() async {
|
||||
Application('dartframework', 'com.toki-labs.dartframework', () async {
|
||||
print(await OSStartup.unregistStartup(appIdendifier));
|
||||
|
||||
isolate.test();
|
||||
|
||||
// print(await OSStartup.isRegistedStartup(appIdendifier));
|
||||
|
||||
// print(await OSStartup.registStartup(
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'dart:async';
|
|||
|
||||
import 'package:dart_framework/data/isolate_data.dart';
|
||||
import 'package:dart_framework/platform/process.dart';
|
||||
import 'package:dart_framework/utils/system_util.dart' as system;
|
||||
|
||||
/// ********************** Test ************************* ///
|
||||
void test() {
|
||||
|
|
@ -34,6 +35,8 @@ void test() {
|
|||
class IsolateTemplate extends IsolateBase {
|
||||
@override
|
||||
void onReady(Object? initData) async {
|
||||
print(
|
||||
'[IsolateTemplate] appName: ${system.appName}, appID: ${system.appIdendifier}');
|
||||
print('[IsolateTemplate] onReady - initData: $initData');
|
||||
addEventListener('test1', onTest1Handler, executeOnce: true);
|
||||
addEventListener('test2', onTest2Handler);
|
||||
|
|
@ -66,7 +69,10 @@ class _IsolateConstructData {
|
|||
late int id;
|
||||
late SendPort mainIsoSender;
|
||||
late Object? initData;
|
||||
_IsolateConstructData(this.id, this.mainIsoSender, this.initData);
|
||||
late String appName;
|
||||
late String appID;
|
||||
_IsolateConstructData(
|
||||
this.id, this.mainIsoSender, this.appName, this.appID, this.initData);
|
||||
}
|
||||
|
||||
class IsolateHandler {
|
||||
|
|
@ -180,8 +186,10 @@ class IsolateManager {
|
|||
inst.isoListener = message as SendPort;
|
||||
isolateEventListener(IsolateEvent.ready, id);
|
||||
});
|
||||
await Isolate.spawn(inst.initialize,
|
||||
_IsolateConstructData(id, isoListener.sendPort, initData));
|
||||
await Isolate.spawn(
|
||||
inst.initialize,
|
||||
_IsolateConstructData(id, isoListener.sendPort, system.appName,
|
||||
system.appIdendifier, initData));
|
||||
await for (IsoMessege message in isoListener) {
|
||||
if (message.type == _IsolateInnerEvent.exit) {
|
||||
isolateEventListener(IsolateEvent.exit, null);
|
||||
|
|
@ -254,6 +262,8 @@ class IsolateBase {
|
|||
id = initData.id;
|
||||
_mainIsoListener = ReceivePort();
|
||||
_mainIsoSender = initData.mainIsoSender;
|
||||
system.initialize(initData.appName, initData.appID);
|
||||
|
||||
send(IsoMessege(_IsolateInnerEvent.ready, data: _mainIsoListener.sendPort));
|
||||
onReady(initData.initData);
|
||||
await for (IsoMessege message in _mainIsoListener) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue