startActivity()在Runnable接口内不起作用

问题描述 投票:0回答:1

我的项目中有一个服务类(SaveMyAppsService.java),一旦启动,它将检查前台应用程序,如果当前前台应用程序的程序包名称与包含已锁定应用程序的程序包名称的List<String> lockedApps匹配,则应启动另一个活动CustomPinActivity,但不起作用!PS:我可以在Logcat中看到mytag日志。

ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();

scheduler.scheduleAtFixedRate(new Runnable() {
    @Override
    public void run() {
        lockedApps = AppPref.getInstance().getAppList(getApplicationContext());

            String localPackName = checkRunningApps(); //returns package name of the current foreground app.

            if( lockedApps.contains(localPackName) ){
                Log.i("mytag","yes this is in lockedApps pref");

                if( !allowedApps.contains( localPackName )){
                    Log.i("mytag","It was not allowed!!!!!!!!!!!!!!!!!!!!!!!!! but now it is");
                    allowedApps.add( localPackName );
                    previousAppName = localPackName;
                    Intent intent  = new Intent(SaveMyAppsService.this.getApplicationContext(), CustomPinActivity.class);
                    intent.putExtra(AppLock.EXTRA_TYPE, AppLock.UNLOCK_PIN);
                    intent.putExtra("package",checkRunningApps());
                    startActivity( intent );
                    checkAllowed();
                }
            }
    }
}, 0, 300, TimeUnit.MILLISECONDS);
java android runnable
1个回答
0
投票
并且您的代码已更新:
© www.soinside.com 2019 - 2024. All rights reserved.