2017-11-06 17 views
-2
public class BackServices extends BroadcastReceiver { 

    private boolean screenOff; 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     context.startService(new Intent(context, UpdateService.class)); 
     if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { 
      screenOff = true; 
     } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { 
      screenOff = false; 
     } 

       Intent i = new Intent(context, UpdateService.class); 
       i.putExtra("screen_state", screenOff); 
       context.startService(i); 
      } 

} 

私はデータベースにアクセスし、そこから電話番号を収集する必要があります。サービス内のデータベースにアクセスするにはどうすればよいですか?

+1

Androidのほかの場所からSQLiteデータベースにアクセスするのと同じ方法で行います。あなたは何を試しましたか、そしてどんな特定の問題が発生しましたか? – CommonsWare

答えて

0

私はこれを次のようにしました。それは今働いている。

private boolean screenOff; 
String str1,str2,str3,str4,str5; 
@Override 
public void onReceive(Context context, Intent intent) { 

    context.startService(new Intent(context, UpdateService.class)); 
    if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { 
     screenOff = true; 
    } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { 
     screenOff = false; 
    } 
    DB db = new DB(context); 
    Cursor c = db.getdata1(); 
    while (c.moveToNext()) { 

     str1 = c.getString(c.getColumnIndex(DB.col1)); 
     str2 = c.getString(c.getColumnIndex(DB.col2)); 
     str3 = c.getString(c.getColumnIndex(DB.col3)); 
     str4 = c.getString(c.getColumnIndex(DB.col4)); 
     str5 = c.getString(c.getColumnIndex(DB.col5)); 
    } 

      Intent i = new Intent(context, UpdateService.class); 
      i.putExtra("screen_state", screenOff); 
      i.putExtra("str1",str1); 
      i.putExtra("str2",str2); 
      i.putExtra("str3",str3); 
      i.putExtra("str4",str4); 
      i.putExtra("str5",str5); 
      context.startService(i); 
     } 
関連する問題