OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 package org.chromium.components.minidump_uploader; | 4 package org.chromium.components.minidump_uploader; |
5 | 5 |
6 import android.annotation.TargetApi; | 6 import android.annotation.TargetApi; |
7 import android.app.job.JobInfo; | 7 import android.app.job.JobInfo; |
8 import android.app.job.JobParameters; | 8 import android.app.job.JobParameters; |
9 import android.app.job.JobScheduler; | 9 import android.app.job.JobScheduler; |
10 import android.app.job.JobService; | 10 import android.app.job.JobService; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 * @param context The application context, in which to schedule the crash re
port uploads. | 43 * @param context The application context, in which to schedule the crash re
port uploads. |
44 * @param jobInfoBuilder A job info builder that has been initialized with a
ny embedder-specific | 44 * @param jobInfoBuilder A job info builder that has been initialized with a
ny embedder-specific |
45 * requriements. This builder will be extended to include shared require
ments, and then used | 45 * requriements. This builder will be extended to include shared require
ments, and then used |
46 * to build an upload job for scheduling. | 46 * to build an upload job for scheduling. |
47 */ | 47 */ |
48 public static void scheduleUpload(Context context, JobInfo.Builder jobInfoBu
ilder) { | 48 public static void scheduleUpload(Context context, JobInfo.Builder jobInfoBu
ilder) { |
49 Log.i(TAG, "Scheduling upload of all pending minidumps."); | 49 Log.i(TAG, "Scheduling upload of all pending minidumps."); |
50 JobScheduler scheduler = | 50 JobScheduler scheduler = |
51 (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SE
RVICE); | 51 (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SE
RVICE); |
52 JobInfo uploadJob = | 52 JobInfo uploadJob = |
53 jobInfoBuilder | 53 jobInfoBuilder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMET
ERED) |
54 .setBackoffCriteria(JOB_INITIAL_BACKOFF_TIME_IN_MS, JOB_
BACKOFF_POLICY) | 54 .setBackoffCriteria(JOB_INITIAL_BACKOFF_TIME_IN_MS, JOB_
BACKOFF_POLICY) |
55 .build(); | 55 .build(); |
56 int result = scheduler.schedule(uploadJob); | 56 int result = scheduler.schedule(uploadJob); |
57 assert result == JobScheduler.RESULT_SUCCESS; | 57 assert result == JobScheduler.RESULT_SUCCESS; |
58 } | 58 } |
59 | 59 |
60 @Override | 60 @Override |
61 public boolean onStartJob(JobParameters params) { | 61 public boolean onStartJob(JobParameters params) { |
62 // Ensure we only run one job at a time. | 62 // Ensure we only run one job at a time. |
63 synchronized (mRunningLock) { | 63 synchronized (mRunningLock) { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 } | 100 } |
101 }; | 101 }; |
102 } | 102 } |
103 | 103 |
104 /** | 104 /** |
105 * @param extras Any extra data persisted for this job. | 105 * @param extras Any extra data persisted for this job. |
106 * @return The minidump uploader that jobs should use. | 106 * @return The minidump uploader that jobs should use. |
107 */ | 107 */ |
108 protected abstract MinidumpUploader createMinidumpUploader(PersistableBundle
extras); | 108 protected abstract MinidumpUploader createMinidumpUploader(PersistableBundle
extras); |
109 } | 109 } |
OLD | NEW |