【问题标题】:Capturing Speed in background of app在应用程序后台捕获速度
【发布时间】:2016-06-23 16:38:58
【问题描述】:

我想在一个程序的后台捕捉 GPS 的速度。我有捕获速度的代码,但除非它是程序中运行的第一件事,否则它将无法工作。应该将其编码为广播 Intent 还是 Intent Service 以便之后弹出通知?

SpeedManagerService.java:

public class SpeedManagerService extends Service {

private static final String TAG = "SpeedCheckerService";

private boolean isRunning = false;

@Override
public void onCreate() {
    Log.i( TAG, "Service onCreate" );

    isRunning = true;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    Log.i( TAG, "Service onStartCommand" );

    //Creating new thread for my service

    new Thread( new Runnable() {
        @Override
        public void run() {

            if (isRunning) {
                Log.i( TAG, "Service running" );
            }
        }

    } ).start();

    return Service.START_STICKY;
}

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}
}

然后我在 Splash 页面下添加了该特定页面的 Intent(在启动页面开始之前在 onCreate 方法下运行):

 public class SplashActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);

Intent intent = new Intent( this, Checker.class );
    startService( intent );

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 我建议发布一些代码以用于您的速度捕获或应用程序配置的表示;这样我们可以提供更好的帮助。

标签: android android-notifications android-gps


【解决方案1】:

根据您的描述,您似乎可以在服务中完成所有工作。它将一直运行——您可以运行一个单独的线程来管理传入数据处理、在运行时注册和注销接收器以及 s0notify 用户。根据我的经验,以反应方式(rx)处理值流是一个好主意-您接收数据,将其传递给操作符链(按速度值过滤)并在最后进行处理。 IntentService 更适合长时间运行的一次性工作

【讨论】:

  • 谢谢,两个答案都有帮助。希望我可以对此进行分类并开始。感谢指导!
  • 所以如果我理解正确的话,我可以添加一个附加了 IntentService 的类,这样当应用启动时,服务将在后台启动并读取需要读取的代码速度并捕获它,然后随之发送通知?我会发布一些代码..如果有人可以帮助我提供服务,我也会非常感激..
  • Intent 服务在终止时运行一次(请参阅文档)使用普通服务,它将无限期运行并在其中进行所有处理
  • 我添加了更多代码。任何帮助将不胜感激。谢谢。
【解决方案2】:

您应该实现一个服务并在其中设置您的条件。对于初学者,请通过此Guide。您可以在 Location Listener 中调用 getSpeed() 函数。

【讨论】:

    猜你喜欢
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 2014-07-30
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2016-12-22
    相关资源
    最近更新 更多