2016-04-19 4 views
1

Ein paar Mal in Android Komponenten ich einen SatzWas bedeutet "der Inhaltsanbieter kann vom System instanziiert werden"?

... angetroffen haben, können durch das System

insbesondere here

Unabhängig davon, ob der Content-Provider instanziiert werden kann vom System instanziiert werden - "wahr", wenn es möglich ist, und "falsch", wenn nicht

Was bedeutet es in Bezug auf Content Provider? (BTW Content Provider Komponente ist neu für mich - ich weiß, andere Android-Komponenten)

  1. Wenn es Content Provider instanziiert durch das System passieren kann?
  2. Warum kann es passieren?
  3. Welchen Vorteil hat meine App durch diese Instanziierung durch das System?
+0

Es bedeutet, dass Sie keine Instanzen von App-Komponenten mit 'new' erstellen. Das System behandelt es –

+0

Haben Sie jemals Instanzen CP mit neuen? Ich glaube nicht ... –

+0

Nein. Genau wie "Aktivitäten" und "Service" können Sie nicht 'neu' verwenden, um einen' ContentProvider' zu instanziieren und ihn ordnungsgemäß zu betreiben. –

Antwort

0

ich nicht die drei Fragen separat antworten konnte, da sie irgendwie schneiden, hier so etwas Antwort, ich hoffe, dass es richtig ist, und ich hoffe, Sie finden es nützlich:

ab Warum/wenn

Sie nicht new verwenden, sollten Sie haben getContentResolver() zu verwenden, die Instanz erstellt und dann können Sie die richtige Methode aufrufen: query(), update() ...

getContentResolver().update(...); 

Als Vorteile

Wenn der CP in anderer App befindet, und als öffentlich markiert

android:exported="true" 

dann können Sie es von Ihrer Anwendung verwenden, aber wie? und unter Verwendung ich meine Abfrage/löschen/update ...

Wenn Sie new verwenden Sie in Ihrem Projekt ... dieses CP hätten Klassen/jar/Ressourcen, die oder hart sein könnten nicht möglich. während "System" diese getContentResolver für Sie tun() bietet (für Verleger und Verbraucher):

  1. Flexibilität
  2. Leichtigkeit
  3. sicherer
0

Alle die Android Anwendungskomponenten Aktivität, Service, ContentProvider und BroadcastReceiver (außer dynamisch) werden vom System instanziiert, wenn eine Anfrage kommt.

Ex:

Aktivität durch das System instanziiert wird, wenn überhaupt jemand anruft startActivity() mit einem Intent

ähnlich ContentProvider auch durch das System instanziiert wird, wenn jemand Anforderung der Daten durch den Contentprovider ContentResolver.query bereitgestellt für den Zugriff mit oder ContentResolver.insert durch Übergeben der entsprechenden URI.

Verwandte Themen