0

我正在开发用户活动跟踪应用程序。

我使用了 Activity Recognition API 来跟踪用户活动。

我已设置要调用的 Intent 服务以指定的时间间隔(例如每 20 秒)获取用户活动。

下面是我的活动识别意图服务类:

/**
 * Called when a new activity detection update is available.
 */
@Override
protected void onHandleIntent(Intent intent) {   
   // mPId = intent.getStringExtra("PID");

--- 当我通过在此处附加未决意图发送一些数据时,我没有获得用户活动意图数据。用户活动意图数据被我的数据替换

    // If the intent contains an result data
    if (ActivityRecognitionResult.hasResult(intent)) {
        // Get the update
        ActivityRecognitionResult result = ActivityRecognitionResult
                .extractResult(intent);

        // Log the update
        saveActivityRecognitionResult(result);
    }
}

上面的代码工作正常如果我没有传递任何自己的数据。

我想连同这个意图一起发送一些数据。我将这些数据与未决意图一起设置。但是,如果我设置数据,我只会收到该数据而不是用户活动意图数据。

我不想使用共享首选项在 Intent 服务中存储和获取它是行不通的。

请帮我解决这个问题。

4

1 回答 1

0

我不会进一步传递这个意图,而是在你的数据中获取数据onHandleIntent并将其添加到其他意图中。

我假设您正试图将此意图传递给将活动数据存储在 sqlite 或其他东西中的某些服务......有一个问题。

不要使用IntentService,因为在它工作之前或期间,如果你不获取它,手机可能会休眠WakeLock。熟悉WakefulBroadcastReceiver来处理它。

另一种解决方案是只使用BroadcastReceiver它,因为它保证手机不会进入睡眠状态。

于 2015-10-22T10:28:54.370 回答