本文整理汇总了Java中android.content.ContentResolver.bulkInsert方法的典型用法代码示例。如果您正苦于以下问题:Java ContentResolver.bulkInsert方法的具体用法?Java ContentResolver.bulkInsert怎么用?Java ContentResolver.bulkInsert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.content.ContentResolver
的用法示例。
在下文中一共展示了ContentResolver.bulkInsert方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: loadInBackground
import android.content.ContentResolver; //导入方法依赖的package包/类
@Override
public Boolean loadInBackground() {
Log.d(TAG, "loadInBackground() called");
ContentResolver contentResolver = getContext().getContentResolver();
Uri uri = DbUtils.getTableUri(MessageModel.MessagesDb.class);
Cursor query = contentResolver.query(uri, null, null, null, null);
if (query == null || query.getCount() == 0) {
Log.d(TAG, "loadInBackground: no data");
List<MessageModel> data = createData();
ContentValues[] values = new ContentValues[data.size()];
for (int i = 0; i < data.size(); i++) {
values[i] = data.get(i).toContentValues();
}
int count = contentResolver.bulkInsert(uri, values);
Log.d(TAG, "loadInBackground() inserted: " + count);
}
if (query != null) {
query.close();
}
return true;
}
示例2: addToPlaylist
import android.content.ContentResolver; //导入方法依赖的package包/类
public static void addToPlaylist(Context context, long[] ids, long playlistid) {
if (ids == null) {
Log.e("MusicBase", "ListSelection null");
} else {
int size = ids.length;
ContentResolver resolver = context.getContentResolver();
String[] cols = new String[]{"count(*)"};
Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistid);
Cursor cur = resolver.query(uri, cols, null, null, null);
cur.moveToFirst();
int base = cur.getInt(0);
cur.close();
int numinserted = 0;
for (int i = 0; i < size; i += 1000) {
makeInsertItems(ids, i, 1000, base);
numinserted += resolver.bulkInsert(uri, sContentValuesCache);
}
}
}
示例3: addToPlaylist
import android.content.ContentResolver; //导入方法依赖的package包/类
public static void addToPlaylist(@NonNull final Context context, @NonNull final List<Song> songs, final int playlistId, final boolean showToastOnFinish) {
final int size = songs.size();
final ContentResolver resolver = context.getContentResolver();
final String[] projection = new String[]{
"max(" + MediaStore.Audio.Playlists.Members.PLAY_ORDER + ")",
};
final Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId);
Cursor cursor = null;
int base = 0;
try {
try {
cursor = resolver.query(uri, projection, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
base = cursor.getInt(0) + 1;
}
} finally {
if (cursor != null) {
cursor.close();
}
}
int numInserted = 0;
for (int offSet = 0; offSet < size; offSet += 1000)
numInserted += resolver.bulkInsert(uri, makeInsertItems(songs, offSet, 1000, base));
if (showToastOnFinish) {
Toast.makeText(context, context.getResources().getString(
R.string.inserted_x_songs_into_playlist_x, numInserted, getNameForPlaylist(context, playlistId)), Toast.LENGTH_SHORT).show();
}
} catch (SecurityException ignored) {
}
}
示例4: addToPlaylist
import android.content.ContentResolver; //导入方法依赖的package包/类
public static void addToPlaylist(final Context context, final long[] ids, final long playlistid) {
final int size = ids.length;
final ContentResolver resolver = context.getContentResolver();
final String[] projection = new String[]{
"max(" + "play_order" + ")",
};
final Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistid);
Cursor cursor = null;
int base = 0;
try {
cursor = resolver.query(uri, projection, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
base = cursor.getInt(0) + 1;
}
} finally {
if (cursor != null) {
cursor.close();
cursor = null;
}
}
int numinserted = 0;
for (int offSet = 0; offSet < size; offSet += 1000) {
makeInsertItems(ids, offSet, 1000, base);
numinserted += resolver.bulkInsert(uri, mContentValuesCache);
}
final String message = context.getResources().getQuantityString(
R.plurals.NNNtrackstoplaylist, numinserted, numinserted);
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
示例5: addToPlaylist
import android.content.ContentResolver; //导入方法依赖的package包/类
/**
* @param context The {@link Context} to use.
* @param ids The id of the song(s) to add.
* @param playlistid The id of the playlist being added to.
*/
public static void addToPlaylist(final Context context, final long[] ids, final long playlistid) {
final int size = ids.length;
final ContentResolver resolver = context.getContentResolver();
final String[] projection = new String[]{
"max(" + Playlists.Members.PLAY_ORDER + ")",
};
final Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistid);
Cursor cursor = null;
int base = 0;
try {
cursor = resolver.query(uri, projection, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
base = cursor.getInt(0) + 1;
}
} finally {
if (cursor != null) {
cursor.close();
cursor = null;
}
}
int numinserted = 0;
for (int offSet = 0; offSet < size; offSet += 1000) {
makeInsertItems(ids, offSet, 1000, base);
numinserted += resolver.bulkInsert(uri, mContentValuesCache);
}
final String message = context.getResources().getQuantityString(
R.plurals.num_tracks_toplaylist, numinserted, numinserted);
Toast.makeText((Activity) context, message, Toast.LENGTH_SHORT).show();
playlistChanged();
}
示例6: caseEnergyUseDay
import android.content.ContentResolver; //导入方法依赖的package包/类
/**
* Caso de teste - Consumo de Energia no Dia:
* - Incluir uma simulação da utilização 24KWH no dia 01/01/2015.
* - Realizar um consulta e testar os seguintes resultados:
* - Data Inicio : 01/01/2015
* - Duração: 24Hs
* - KWH : 24.00
*/
@Test
public void caseEnergyUseDay() {
Context context = InstrumentationRegistry.getTargetContext();
ContentResolver contentResolver = context.getContentResolver();
Calendar dateBegin = Calendar.getInstance();
//Utilização de energia no dia 01/01/2015.
dateBegin.set(2015,1,1,0,0,0);
dateBegin.set(Calendar.MILLISECOND,0);
Calendar endDate = Calendar.getInstance();
endDate.setTime(OhaHelper.getDateEnd(dateBegin.getTime(), false));
Calendar beginHour = Calendar.getInstance();
beginHour.setTime(dateBegin.getTime());
//Realizar a inclusão:
while (beginHour.before(endDate)){
ContentValues[] contentValues = new ContentValues[360];
for(int index = 0; index < contentValues.length; index++ ) {
long id = Long.parseLong(String.format("%s%s%06d", OhaHelper.getStrDate(beginHour.getTime()), OhaHelper.getStrHour(beginHour.getTime()), index));
//Gerar um consuno de 1000 Watts a cada 10 segundos.
contentValues[index] = EnergyUseLogEntry.parse(
beginHour.getTime(),
10,
220.00,
400.00,
400.00,
200.00
);
beginHour.add(Calendar.MILLISECOND, 10000);
}
contentResolver.bulkInsert(
CONTENT_URI_LOG,
contentValues);
}
//Realizar a Consulta:
String selection = String.format("%s BETWEEN ? AND ?", EnergyUseLogEntry._ID);
String[] selectionArgs = new String[]{
String.valueOf(OhaHelper.getDateBegin(endDate.getTime()).getTime()),
String.valueOf(endDate.getTime().getTime())
};
Cursor cursor = context.getContentResolver().query(
OhaEnergyUseContract.CONTENT_URI_DAYS,
null,
selection,
selectionArgs,
null
);
assertTrue("Energy Logs is empty!", cursor.moveToFirst());
long longBeginDate = cursor.getLong(EnergyUseLogEntry.INDEX_COLUMN_CALC_DATE);
assertEquals("Begin Date", dateBegin.getTime().getTime(), longBeginDate);
Double duration = cursor.getDouble(EnergyUseLogEntry.INDEX_COLUMN_CALC_DURATION_SUN);
assertEquals("Duration", DateUtils.DAY_IN_MILLIS / 1000.00, duration, 0.00);
Double totalKWH = OhaHelper.convertWhToKWH(cursor.getDouble(EnergyUseLogEntry.INDEX_COLUMN_CALC_WH_TOTAL_SUN));
assertEquals("Total KWH", "24.00", OhaHelper.formatNumber(totalKWH,"#0.00"));
}
示例7: syncWeather
import android.content.ContentResolver; //导入方法依赖的package包/类
/**
* Performs the network request for updated weather, parses the JSON from that request, and
* inserts the new weather information into our ContentProvider. Will notify the user that new
* weather has been loaded if the user hasn't been notified of the weather within the last day
* AND they haven't disabled notifications in the preferences screen.
*
* @param context Used to access utility methods and the ContentResolver
*/
synchronized public static void syncWeather(Context context) {
// COMPLETED (3) Within syncWeather, fetch new weather data
try {
/*
* The getUrl method will return the URL that we need to get the forecast JSON for the
* weather. It will decide whether to create a URL based off of the latitude and
* longitude or off of a simple location as a String.
*/
URL weatherRequestUrl = NetworkUtils.getUrl(context);
/* Use the URL to retrieve the JSON */
String jsonWeatherResponse = NetworkUtils.getResponseFromHttpUrl(weatherRequestUrl);
/* Parse the JSON into a list of weather values */
ContentValues[] weatherValues = OpenWeatherJsonUtils
.getWeatherContentValuesFromJson(context, jsonWeatherResponse);
/*
* In cases where our JSON contained an error code, getWeatherContentValuesFromJson
* would have returned null. We need to check for those cases here to prevent any
* NullPointerExceptions being thrown. We also have no reason to insert fresh data if
* there isn't any to insert.
*/
if (weatherValues != null && weatherValues.length != 0) {
/* Get a handle on the ContentResolver to delete and insert data */
ContentResolver sunshineContentResolver = context.getContentResolver();
// COMPLETED (4) If we have valid results, delete the old data and insert the new
/* Delete old weather data because we don't need to keep multiple days' data */
sunshineContentResolver.delete(
WeatherContract.WeatherEntry.CONTENT_URI,
null,
null);
/* Insert our new weather data into Sunshine's ContentProvider */
sunshineContentResolver.bulkInsert(
WeatherContract.WeatherEntry.CONTENT_URI,
weatherValues);
}
/* If the code reaches this point, we have successfully performed our sync */
} catch (Exception e) {
/* Server probably invalid */
e.printStackTrace();
}
}
示例8: syncWeather
import android.content.ContentResolver; //导入方法依赖的package包/类
/**
* Performs the network request for updated weather, parses the JSON from that request, and
* inserts the new weather information into our ContentProvider. Will notify the user that new
* weather has been loaded if the user hasn't been notified of the weather within the last day
* AND they haven't disabled notifications in the preferences screen.
*
* @param context Used to access utility methods and the ContentResolver
*/
synchronized public static void syncWeather(Context context) {
try {
/*
* The getUrl method will return the URL that we need to get the forecast JSON for the
* weather. It will decide whether to create a URL based off of the latitude and
* longitude or off of a simple location as a String.
*/
URL weatherRequestUrl = NetworkUtils.getUrl(context);
/* Use the URL to retrieve the JSON */
String jsonWeatherResponse = NetworkUtils.getResponseFromHttpUrl(weatherRequestUrl);
/* Parse the JSON into a list of weather values */
ContentValues[] weatherValues = OpenWeatherJsonUtils
.getWeatherContentValuesFromJson(context, jsonWeatherResponse);
/*
* In cases where our JSON contained an error code, getWeatherContentValuesFromJson
* would have returned null. We need to check for those cases here to prevent any
* NullPointerExceptions being thrown. We also have no reason to insert fresh data if
* there isn't any to insert.
*/
if (weatherValues != null && weatherValues.length != 0) {
/* Get a handle on the ContentResolver to delete and insert data */
ContentResolver sunshineContentResolver = context.getContentResolver();
/* Delete old weather data because we don't need to keep multiple days' data */
sunshineContentResolver.delete(
WeatherContract.WeatherEntry.CONTENT_URI,
null,
null);
/* Insert our new weather data into Sunshine's ContentProvider */
sunshineContentResolver.bulkInsert(
WeatherContract.WeatherEntry.CONTENT_URI,
weatherValues);
}
/* If the code reaches this point, we have successfully performed our sync */
} catch (Exception e) {
/* Server probably invalid */
e.printStackTrace();
}
}
示例9: handleMessage
import android.content.ContentResolver; //导入方法依赖的package包/类
@Override
public void handleMessage(Message msg) {
final ContentResolver resolver = mResolver.get();
if (resolver == null) return;
WorkerArgs args = (WorkerArgs) msg.obj;
int token = msg.what;
int event = msg.arg1;
switch (event) {
case EVENT_ARG_QUERY:
Cursor cursor;
try {
cursor = resolver.query(args.uri, args.projection,
args.selection, args.selectionArgs,
args.orderBy);
// Calling getCount() causes the cursor window to be filled,
// which will make the first access on the main thread a lot faster.
if (cursor != null) {
cursor.getCount();
}
} catch (Exception e) {
Log.w(TAG, "Exception thrown during handling EVENT_ARG_QUERY", e);
cursor = null;
}
args.result = cursor;
break;
case EVENT_ARG_INSERT:
args.result = resolver.insert(args.uri, args.values);
break;
case EVENT_ARG_BULK_INSERT:
args.result = resolver.bulkInsert(args.uri, args.valuesArray);
break;
case EVENT_ARG_UPDATE:
args.result = resolver.update(args.uri, args.values, args.selection,
args.selectionArgs);
break;
case EVENT_ARG_DELETE:
args.result = resolver.delete(args.uri, args.selection, args.selectionArgs);
break;
}
// passing the original token value back to the caller
// on top of the event values in arg1.
Message reply = args.handler.obtainMessage(token);
reply.obj = args;
reply.arg1 = msg.arg1;
if (localLOGV) {
Log.d(TAG, "WorkerHandler.handleMsg: msg.arg1=" + msg.arg1
+ ", reply.what=" + reply.what);
}
reply.sendToTarget();
}
示例10: handleSubtitles
import android.content.ContentResolver; //导入方法依赖的package包/类
private static int handleSubtitles(ContentResolver cr) {
Uri uri = VideoStore.Files.getContentUri("external");
String sortOrder = VideoStore.Video.VideoColumns.BUCKET_ID;
// videos need name and id
List<Pair<String, Long>> videos = new ArrayList<Pair<String, Long>>();
// subtitles need id, name, size, language, ...
List<SubtitleInfo> subs = new ArrayList<SubtitleInfo>();
// inserts to do
List<ContentValues> inserts = new ArrayList<ContentValues>();
Cursor c = cr.query(uri, PROJ_ID_DATA_SIZE, SEL_VIDS_N_SUBS, null, sortOrder);
if (c != null) {
String lastBucket = null;
while (c.moveToNext()) {
long id = c.getLong(0);
String file = c.getString(1);
long size = c.getLong(2);
String bucketId = c.getString(3);
int mediaType = c.getInt(4);
// if bucket switches, handle old bucket
if (!bucketId.equals(lastBucket)) {
handleSubtitleBucket(videos, subs, inserts);
// update current bucket & empty lists
lastBucket = bucketId;
videos.clear();
subs.clear();
}
// add videos & subtitles to their lists
switch (mediaType) {
case VideoStore.Files.FileColumns.MEDIA_TYPE_VIDEO:
videos.add(Pair.create(ArchosMediaFile.getFileTitle(file), Long.valueOf(id)));
break;
case VideoStore.Files.FileColumns.MEDIA_TYPE_SUBTITLE:
subs.add(new SubtitleInfo(id, file, size));
break;
default:
// should be impossible
Log.e(TAG, "Bad MediaType:" + mediaType + " when scanning videos and subtitles");
break;
}
}
c.close();
}
// handle any remaining videos and subtitles
handleSubtitleBucket(videos, subs, inserts);
// insert new subtitle associations
if (inserts.size() > 0) {
ContentValues[] values = new ContentValues[inserts.size()];
values = inserts.toArray(values);
return cr.bulkInsert(SUBS_URI, values);
}
return 0;
}