mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 15:24:35 +01:00
Android: support background process
This commit is contained in:
@@ -1,6 +1,23 @@
|
|||||||
package tech.lolli.toolbox
|
package tech.lolli.toolbox
|
||||||
|
|
||||||
import io.flutter.embedding.android.FlutterActivity
|
import io.flutter.embedding.android.FlutterActivity
|
||||||
|
import io.flutter.embedding.engine.FlutterEngine
|
||||||
|
import io.flutter.plugin.common.MethodChannel
|
||||||
|
|
||||||
class MainActivity: FlutterActivity() {
|
class MainActivity : FlutterActivity() {
|
||||||
|
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
||||||
|
super.configureFlutterEngine(flutterEngine)
|
||||||
|
val binaryMessenger = flutterEngine.dartExecutor.binaryMessenger
|
||||||
|
|
||||||
|
MethodChannel(binaryMessenger, "tech.lolli.toolbox/app_retain").apply {
|
||||||
|
setMethodCallHandler { method, result ->
|
||||||
|
if (method.method == "sendToBackground") {
|
||||||
|
moveTaskToBack(true)
|
||||||
|
result.success(null)
|
||||||
|
} else {
|
||||||
|
result.notImplemented()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
import 'package:after_layout/after_layout.dart';
|
import 'package:after_layout/after_layout.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||||
import 'package:get_it/get_it.dart';
|
import 'package:get_it/get_it.dart';
|
||||||
|
|
||||||
import '../../core/analysis.dart';
|
import '../../core/analysis.dart';
|
||||||
import '../../core/route.dart';
|
import '../../core/route.dart';
|
||||||
import '../../core/update.dart';
|
import '../../core/update.dart';
|
||||||
|
import '../../core/utils/platform.dart';
|
||||||
import '../../core/utils/ui.dart';
|
import '../../core/utils/ui.dart';
|
||||||
import '../../data/model/app/dynamic_color.dart';
|
import '../../data/model/app/dynamic_color.dart';
|
||||||
import '../../data/model/app/navigation_item.dart';
|
import '../../data/model/app/navigation_item.dart';
|
||||||
@@ -47,6 +49,7 @@ class _MyHomePageState extends State<MyHomePage>
|
|||||||
late int _selectIndex;
|
late int _selectIndex;
|
||||||
late double _width;
|
late double _width;
|
||||||
late S _s;
|
late S _s;
|
||||||
|
final _channel = const MethodChannel('tech.lolli.toolbox/app_retain');
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
@@ -75,8 +78,12 @@ class _MyHomePageState extends State<MyHomePage>
|
|||||||
void didChangeAppLifecycleState(AppLifecycleState state) {
|
void didChangeAppLifecycleState(AppLifecycleState state) {
|
||||||
super.didChangeAppLifecycleState(state);
|
super.didChangeAppLifecycleState(state);
|
||||||
if (state == AppLifecycleState.paused) {
|
if (state == AppLifecycleState.paused) {
|
||||||
_serverProvider.setDisconnected();
|
if (isAndroid) {
|
||||||
_serverProvider.stopAutoRefresh();
|
_channel.invokeMethod('sendToBackground');
|
||||||
|
} else {
|
||||||
|
_serverProvider.setDisconnected();
|
||||||
|
_serverProvider.stopAutoRefresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (state == AppLifecycleState.resumed) {
|
if (state == AppLifecycleState.resumed) {
|
||||||
_serverProvider.startAutoRefresh();
|
_serverProvider.startAutoRefresh();
|
||||||
|
|||||||
Reference in New Issue
Block a user