2010-11-22 5 views
4

C'est triste à quel point il est difficile de trouver une simple ligne de code qui fait ça "à mon avis".
Comment utiliser SQLite à partir de Services dans Android?

De toute façon, le problème est que j'ai un programme avec des activités et des services "Je suis nouveau aux services".
Je peux accéder à mon SQLite DataBase des activités utilisant

classe labase:

public TheDB(Context context) { 
    this.context = context; 
    OpenHelper openHelper = new OpenHelper(this.context); 
    this.db = openHelper.getWritableDatabase(); 
} 

Et puis je peux appeler les méthodes, par exemple

classe MyActivity:

private TheDB db; 
bla... bla... bla... 
this.db = new TheDB(this); 
db.insertSomething(id, name); 

classe labase (méthode appelée à partir MyActivity):

public void insertSomething(String id, String name){ 
    db.execSQL("INSERT into " + farmsTable 
+ " (id, name)" 
+ " Values " 
+ " (" + id + ", '" + name + "')"); 
} 

ALL Je veux être en mesure de faire est d'appeler les méthodes de labase de mon service comme je le fais de MyActivity .

Est-ce que je crée un nouveau constructeur? Est-ce que je change la façon dont je l'instancie?

+2

Avez-vous même essayé? – Thomas

+0

Salut brotha, je l'ai essayé mais il continue à dire "La méthode TheDB (Context) est indéfini pour le type myService" mon code de service est: public class myService extends Service { \t public TheDB db; \t Contexte contextuel; \t @Override public void onCreate() { \t contexte = getApplicationContext(); \t this.db = TheDB (contexte); } – ZiGi

Répondre

5

Il suffit de le faire de la même manière que vous l'avez fait pour votre activité. La seule chose que vous devez instancier TheDB est un contexte; Activity est un Context ainsi que Service.

+0

salut Brotha, j'ai essayé que cependant il ne cesse de dire "La méthode labase (contexte) est définie pour le type myService" – ZiGi

+2

voici mon code: myService public class {étend son service \t labase publique db; \t Contexte contextuel; \t @Override public void onCreate() { \t contexte = getApplicationContext(); \t this.db = TheDB (contexte); } – ZiGi

+0

Il vous manque le mot clé 'new'. – Cristian

Questions connexes