【问题标题】:How to implement startService(i) not on MainActivity如何在 MainActivity 上实现 startService(i)
【发布时间】:2015-05-20 02:54:36
【问题描述】:

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

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");}

【问题讨论】:

    标签: java android android-intent


    【解决方案1】:

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

    mContext.startService(i);
    

    它在Activity 中没有Context 的原因是因为Activity 扩展了Context 并通过继承获得该方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-24
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      • 2014-01-20
      相关资源
      最近更新 更多