我试图在书签/浏览器历史记录中搜索特定的URL,然后在找到匹配项后开始新的意图。 问题是-尽管浏览器历史记录和书签都包含正在查询的值,但新意图永远不会开始。

任何想法为什么会发生这种情况?

import com.parse.ParseObject; 
import android.app.AlertDialog;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.TrafficStats;
import android.net.Uri;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.provider.Browser;
import android.util.Log;
import android.widget.Chronometer;
import android.widget.TextView;
import android.widget.Toast;

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();
        String[] projection = new String[] { Browser.BookmarkColumns.TITLE,
                Browser.BookmarkColumns.URL };
                Cursor cursor = getContentResolver().query(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 intent2 = new Intent(Service_class.this, Warning.class);
                Service_class.this.startActivity(intent);
                startActivity(intent2);
                }
                } while (cursor.moveToNext()); 
            //  tv.setText(urls);


    }

        return START_STICKY;
    }

    @Override
    public void onDestroy() {

        super.onDestroy();
        Toast.makeText(this, "Service Stopped", Toast.LENGTH_LONG).show();

    }

    @Override
    public void onCreate() {
        super.onCreate();

}}

===============>>#1 票数:0

如果活动与dirty10匹配,则只运行该活动。 可能是问题1。

更好的方法可能是执行rawQuery并在WHERE子句中使用LIKE语句。

另外,您很快就会遇到的另一个问题是,如果您有多个匹配(在修复了if / elseifs之后),您将启动多个活动,而这并不是您想要的。

===============>>#2 票数:0 已采纳

它应该是

 if (url.toLowerCase().contains(Dirty1) || url.toLowerCase().contains(Dirty2) || ....)
 {
     Intent intent2 = new Intent(Service_class.this, Warning.class);
     intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     startActivity(intent2);
     break;
 }

  ask by Bill Florentine translate from so

未解决问题?本站智能推荐:

1回复

重新启动后缺少意图的“ extras”值

我刚刚发现,我不知道如何在设备重启后保存我的Intent附加功能。 我需要它来进行临时通知。 这是MainActivity中我设置警报的一部分 Calendar startTime = Calendar.getInstance(); startTime.set(
1回复

Android AlarmManager无法启动活动

我在源代码中内置了2个AlarmManager实例-该实例的第二个实例应该在字符串指定的时间启动活动:时间。 文本视图为字符串显示正确的时间:time,但是它似乎从未启动第二个AlarmManager的活动(KillTimer.java),我不确定为什么。 我确定我已经忽略了一些简单的事情,
1回复

Android-重新启动后启动AlarmManager

重新启动后,AlarmManeger不会启动,但应该会启动。 我该怎么做? AndroidManifest: 广播接收器:
2回复

60秒后警报管理器无法启动

我正在尝试将警报管理器设置为工作状态,只是简单的时间表,每分钟发射吐司,但它不起作用,代码有什么问题? 主要活动 : } AlarmToastReciever类别:
1回复

警报管理器无法启动android

在我的应用中,我正在尝试以下功能。 我要根据日期和时间,向用户接收一些通知。 例如: 19.13年9月9日收到带有message1的通知 9月10日,07.30,带有消息2, 同一天,但11.50,带有消息3,依此类推... 我使用了一个警报和一个推杆通
1回复

重新启动后,BroadcastReceiver无法正常工作

我的BroadcastReceiver工作正常,但是当我重新启动手机时,所有通知都停止工作。 AndroidManifest.xml中 AlarmReceiver.java public class AlarmReceiver extends BroadcastReceiver
1回复

Android-具有待定意图的多个警报,如何确定正在调用哪个意图?

我正在使用2个单独的警报。 我的课堂上有一个方法可以创建2个不同的挂起意图来启动2个警报。 此方法在完成时调用广播方法,但是取决于接收到的意图,我需要执行不同的操作 提前致谢, 安迪 即时课堂 广播接收器类别
1回复

Android WorkManager-应用程序终止后无法正常运行

我创建了一个简单的workManager,我希望它在后台每隔1秒钟进行一次for循环50次,因此它将每1秒钟循环一次并显示日志。 首先让我介绍一下我的代码。 这是WorkManager类。 这是我的MainActivity。 如果有什么问题请通知我。 因此,当我启动应用
1回复

Android BroadcastListener重新启动循环

我正在尝试实现一项功能,其中Android手机每天在4:30 am重新启动。 为了实现这一点,我将使用带有根电话的手机,并将其作为系统运行。 重新启动按应有的方式进行,但是,在第一次重新启动后,每次应用在启动时再次启动时,它都会立即重新启动。 MainActivity.java
2回复

1个多小时后-或应用程序处于休眠状态时,Alarmmanager不会启动服务-Android Oreo [关闭]

关闭。 这个问题是题外话。 它当前不接受答案。 了解更多 。 想改善这个问题吗? 更新问