服务启动与关闭模块部署基本完成,待调试。。。

This commit is contained in:
2025-12-13 10:53:46 +08:00
parent 61a20f6811
commit 8fe7444065
2 changed files with 21 additions and 7 deletions

View File

@@ -21,13 +21,11 @@ import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
import cc.winboll.studio.contacts.activities.SettingsActivity;
import cc.winboll.studio.contacts.activities.WinBollActivity;
import cc.winboll.studio.contacts.dun.Rules;
@@ -43,7 +41,6 @@ import cc.winboll.studio.libaes.views.ADsBannerView;
import cc.winboll.studio.libappbase.LogUtils;
import cc.winboll.studio.libappbase.LogView;
import com.google.android.material.tabs.TabLayout;
import java.util.ArrayList;
import java.util.List;

View File

@@ -34,6 +34,7 @@ import java.util.TimerTask;
* @Date 2025/02/13 06:56:41
* @Describe 拨号主服务,负责核心业务逻辑、守护进程绑定、铃声音量监控及通话监听启动
* 严格适配 Android API 30 + Java 7 语法规范 | 解决前台服务启动超时崩溃
* 新增:统一在 mainService() 中启动电话监听服务 + 通话筛选服务
*/
public class MainService extends Service {
// ====================== 常量定义区(全硬编码,杜绝高版本 API 依赖) ======================
@@ -299,12 +300,24 @@ public class MainService extends Service {
}
/**
* 启动话监听服务
* 启动话监听服务原有CallListenerService
*/
private void startPhoneCallListener() {
delayStartNonCoreService(CallListenerService.class);
}
/**
* 新增启动通话筛选服务MyCallScreeningServiceAPI 10+ 生效)
*/
private void startCallScreeningService() {
// 通话筛选服务仅 Android 10+API 29+)支持,低版本跳过
if (Build.VERSION.SDK_INT >= ANDROID_10_API) {
delayStartNonCoreService(MyCallScreeningService.class);
} else {
LogUtils.d(TAG, "startCallScreeningService: 系统版本低于 Android 10不支持通话筛选服务跳过启动");
}
}
/**
* 检查服务是否正在运行
*/
@@ -404,9 +417,10 @@ public class MainService extends Service {
mMainServiceThread = null;
}
// 7. 强制停止所有子服务
// 7. 强制停止所有子服务(新增:停止通话筛选服务 MyCallScreeningService
stopService(new Intent(this, AssistantService.class));
stopService(new Intent(this, CallListenerService.class));
stopService(new Intent(this, MyCallScreeningService.class));
LogUtils.d(TAG, "onDestroy: 所有子服务已强制停止");
// 8. 清空静态实例,避免内存泄漏(不改动 Bean 配置)
@@ -471,10 +485,13 @@ public class MainService extends Service {
Rules.getInstance(this).loadRules();
LogUtils.d(TAG, "mainService: 黑白名单规则已加载");
// 4. 启动电话监听服务
// 4. 启动电话监听服务原有CallListenerService
startPhoneCallListener();
// 5. 启动主业务线程
// 5. 新增启动通话筛选服务MyCallScreeningServiceAPI 10+ 生效)
startCallScreeningService();
// 6. 启动主业务线程
mMainServiceThread = MainServiceThread.getInstance(this, mMainServiceHandler);
mMainServiceThread.start();
LogUtils.i(TAG, "mainService: 核心流程启动完成,主服务正常运行");