几个小时后,DynamoDBMapper.save()停止在app中工作

时间:2016-10-17 23:10:08

标签: android amazon-web-services amazon-dynamodb amazon-cognito

我正在使用DynamoDB来存储设备数据。对DynamoDB的调用将触发使用AlarmManager配置的Intent。我的代码如下:

MainActivity:

CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
            getApplicationContext(),
            "Pool_ID", // Identity Pool ID
            Regions.US_EAST_1 // Region
    );
   AmazonDynamoDBClient client = new AmazonDynamoDBClient(credentialsProvider);

在IntentService中调用的AsyncTask(通过AlarmManager触发):

private class SendData extends AsyncTask<String, Void, String> {

    @Override
    protected void onPostExecute(String s) {
        sendSMS(s);
    }

    @Override
    protected String doInBackground(String... params) {
        try {
            sendSMS("saving..."); // send to myself
            Data data = new Data();
            Data.setData(params[0]);
            DynamoDBMapperConfig dynamoDBMapperConfig = new DynamoDBMapperConfig(DynamoDBMapperConfig.SaveBehavior.UPDATE);
            DynamoDBMapper dynamoDBMapper = new DynamoDBMapper(MainActivity.client, dynamoDBMapperConfig);
            sendSMS("saving...");
            dynamoDBMapper.save(data);


        } catch (Exception e) {
            Log.e(getClass().getSimpleName(), e.getMessage());
            return "failed...";
        }
        return "success...";
    }
}

当我的应用首次加载并运行时,我看到保存到DynamoDB的数据。几个小时后数据停止保存,我没有在日志中看到错误。有关DynamoDBMapper.save几个小时后停止工作的想法吗?

编辑1:添加了用于调试的sendSMS()方法。当我最初启动我的应用程序时,我收到发送,保存,成功的SMS消息。几个小时后,我只收到发送和保存的短信,我从未收到错误信息。

编辑2:将onPostExecute添加到AsyncTask

0 个答案:

没有答案