मैं सोच रहा था कि क्या एक ही प्रदाता में android.content.ContentResolver.applyBatch() विधि का उपयोग कर सामग्री प्रदाता को मास्टर और विस्तार रिकॉर्ड सहेजना संभव है, जहां प्रदाता पैरामीटर में बाद में ContentProviderOperation आइटम पिछले आइटम के परिणाम पर निर्भर करता है । ContentResolver.applyBatch() का उपयोग कर मास्टर-विवरण?
समस्या मैं आ रही है कि वास्तविक उरी समय में ज्ञात नहीं है कि ContentProviderOperation.newInsert (उरी) विधि कहा जाता है और उरी अपरिवर्तनीय है।
क्या मैं के साथ नीचे दिखाया गया है ऊपर आ गए हैं:
मास्टर उरी: सामग्री: //com.foobar.masterdetail/master
विस्तार से उरी: सामग्री: //com.foobar। masterdetail/मास्टर/#/विस्तार
ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
operations.add(ContentProviderOperation.newInsert(intent.getData())
.withValue(Master.NAME, "")
.withValue(Master.VALUE, "")
.build());
operations.add(ContentProviderOperation.newInsert(intent.getData()
.buildUpon()
.appendPath("#") /* ACTUAL VALUE NOT KNOWN UNTIL MASTER ROW IS SAVED */
.appendPath("detail")
.build())
.withValue(Detail.MASTER_ID, /* WHAT GOES HERE? */)
.withValue(Detail.NAME, "")
.withValue(Detail.VALUE, "")
.build());
ContentProviderResult[] results = this.getContentResolver().applyBatch(MasterDetail.AUTHORITY, operations);
for (ContentProviderResult result : results) {
Uri test = result.uri;
}
मेरी सामग्री प्रदाता में, मैं आदेश operati रैप करने के लिए में applyBatch() विधि अधिभावी कर रहा हूँ एक लेनदेन में।
क्या यह संभव है या ऐसा करने का एक बेहतर तरीका है?
धन्यवाद।
कृपया, क्या आपको लगता है कि आप मास्टर-विवरण रिकॉर्ड डालने के लिए अपना कोड साझा कर सकते हैं। मैं लगभग एक सप्ताह तक इस बारे में कुछ जानकारी खोजने की कोशिश कर रहा हूं। – eddy