gpt4 book ai didi

java - 如何不在 MainActivity 上实现 startService(i)

转载 作者:行者123 更新时间:2023-11-30 08:52:01 26 4
gpt4 key购买 nike

在 while(true) 语句中,我正在创建一个将在 onHandleIntent 中运行案例的 Intent 。但是,如果不将 Activity 类扩展到我的 LocationTracker 类,我将无法使用 startService(i) 启动 Intent 。当我执行 LocationTracker extends Activity 时,我可以使用 startService(i) 但应用程序中断并停止工作。我收到错误“Activity 已泄漏服务连接”。无论如何要解决这个问题?我确实需要的方法在 BackgroundService 类中是私有(private)的,我的 MainScreen 扩展 Activity 使用相同的代码 fragment 来启动服务。是不是我同时运行两个 Intent ,如果是的话,有没有办法在我的其他类中调用私有(private)方法?

public class LocationTracker{               
DSApi dsApi=new DSApi((ContextWrapper)mContext,null);
if(dsApi.initialize(AppSettings.IP_ADDRESS,AppSettings.PORT,false)) {
interv = (int)dsApi.sendLocationInfo(l);
if (dsApi.needRemoteWipe()) {
while(true){
Intent i = IntentFactory.getBackgroundService();
i.putExtra(BackgroundService.EXTRA_OPERATION,BackgroundService.OPERATION_BACKUP);
startService(i);
AppSettings.addEventLog(EventLog.TYPE_BACKUP, "Data backed up");
break;
}
AppSettings.setRemoteWipe(true);
}
}
Log.d("SendLocationTask", "finished");}

最佳答案

startService() 方法来自 Context 类,您似乎引用了其中一个。尝试以下操作:

mContext.startService(i);

它在 Activity 中没有 Context 的情况下工作的原因是因为 Activity 扩展 Context 并获取该方法通过继承。

关于java - 如何不在 MainActivity 上实现 startService(i),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30333811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com