对于类型Service_类 ,managedQuery方法未定义;Service_class.java
这可能是什么原因?我们只是尝试在下面的服务类中查询浏览器历史记录,但是eclipse生成了错误对于类型Service_类 ,managedQuery方法未定义;Service_class.java,java,android,sqlite,Java,Android,Sqlite,这可能是什么原因?我们只是尝试在下面的服务类中查询浏览器历史记录,但是eclipse生成了错误对于类型service\u class service\u class.java,managedQuery方法未定义 我们曾试图遵循eclipse的建议,但它完全打开了另一个蠕虫罐头 例如: public class Service_class extends Service { String Dirty1 = "www.playboy.com"; String Dirty
对于类型service\u class service\u class.java,managedQuery方法未定义
我们曾试图遵循eclipse的建议,但它完全打开了另一个蠕虫罐头
例如:
public class Service_class extends Service {
String Dirty1 = "www.playboy.com";
String Dirty2 = "www.penthouse.com";
String Dirty3 = "www.pornhub.com";
String Dirty4 = "www.playboy.com";
String Dirty5 = "www.playboy.com";
String Dirty6 = "www.playboy.com";
String Dirty7 = "www.playboy.com";
String Dirty8 = "www.playboy.com";
String Dirty9 = "www.playboy.com";
String Dirty10 = "www.playboy.com";
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service Stopped", Toast.LENGTH_LONG).show();
}
@Override
public void onCreate() {
super.onCreate();
String[] projection = new String[] { Browser.BookmarkColumns.TITLE,
Browser.BookmarkColumns.URL };
Cursor cursor = managedQuery(android.provider.Browser.BOOKMARKS_URI,
projection, null, null, null);
String urls = "";
if (cursor.moveToFirst()) {
String url1 = null;
String url2 = null;
do {
String url = cursor.getString(cursor.getColumnIndex(Browser.BookmarkColumns.URL));
if (url.toLowerCase().contains(Dirty1)) {
} else if (url.toLowerCase().contains(Dirty2)) {
} else if (url.toLowerCase().contains(Dirty3)) {
} else if (url.toLowerCase().contains(Dirty4)) {
} else if (url.toLowerCase().contains(Dirty5)) {
} else if (url.toLowerCase().contains(Dirty6)) {
} else if (url.toLowerCase().contains(Dirty7)) {
} else if (url.toLowerCase().contains(Dirty8)) {
} else if (url.toLowerCase().contains(Dirty9)) {
} else if (url.toLowerCase().contains(Dirty10)) {
//if (url.toLowerCase().contains(Filthy)) {
urls = urls
+ cursor.getString(cursor.getColumnIndex(Browser.BookmarkColumns.TITLE)) + " : "
+ url + "\n";
Intent intent = new Intent(Service_class.this, Warning.class);
Service_class.this.startActivity(intent);
}
} while (cursor.moveToNext());
// tv.setText(urls);
}
}}
服务的managedQuery函数不存在。它只存在于活动中。您仍然可以执行查询,但必须手动管理光标并将其关闭。在onCreate方法的第3行中,您使用的是托管查询方法。它是在哪里定义的?因为服务也没有查询方法,所以您需要以最困难的方式进行操作-找到您需要的内容提供商,查询它,并确保完成后关闭光标。管理它就像在C++中管理内存一样——当您使用完它后,您需要释放它所使用的资源(通过close)。“活动”上的managedQuery为您执行此操作。但对于一项服务,你必须自己完成。关于如何完成这项工作,有什么建议吗?(我们以前从未创建过服务类-我们刚刚了解了如何创建)您试图查询什么?任何与我们的“脏”字符串匹配的内容。请尝试使用getContentResolver().query()代替managedQuery。