在安卓系统中启动一个应用程序到后台的意图

3
我在我的应用程序中使用Wikitude API 1.1作为AR查看器。 Wikitude的问题是,如果我自手机开机以来还没有启动实际的Wikitude应用程序,每次启动我的应用程序时都会出现NullPointerException。
因此,我想,如果我可以先启动我的应用程序,然后检查是否安装和运行了Wikitude。 如果没有安装,则转到市场并下载。 如果没有运行,则应将其直接运行到后台,以便我的应用程序不会失去焦点。
    // Workaround for Wikitude
    this.WIKITUDE_PACKAGE_NAME = "com.wikitude";
    PackageManager pacMan = Poligamy.this.getPackageManager();
    try {
        PackageInfo pacInfo = pacMan.getPackageInfo(this.WIKITUDE_PACKAGE_NAME, pacMan.GET_SERVICES);
        Log.i("CheckWKTD", "Wikitude is Installed");
        ActivityManager aMan = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
        List<RunningAppProcessInfo> runningApps = aMan.getRunningAppProcesses();
        int numberOfApps = runningApps.size();

        for(int i=0; i<numberOfApps; i++) {
            if(runningApps.get(i).processName.equals(this.WIKITUDE_PACKAGE_NAME)) {
                this.WIKITUDE_RUNNING = 1;
                Log.i("CheckWKTD", "Wikitude is Running");
            }
        }
        if(this.WIKITUDE_RUNNING == 0) {
            Log.i("CheckWKTD", "Wikitude is NOT Running");
            /*final Intent wIntent = new Intent(Intent.ACTION_MAIN, null);
            wIntent.addCategory(Intent.CATEGORY_LAUNCHER);
            final ComponentName cn = new ComponentName("com.wikitude", 
                    "com.mobilizy.wikitudepremium.initial.Splash");
            wIntent.setComponent(cn);
            wIntent.setFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION);
            startActivityIfNeeded(wIntent, 0);*/
        }
    } catch (NameNotFoundException e) {
        // TODO Auto-generated catch block
        Log.i("CheckWKTD", "Wikitude is NOT Installed");
        e.printStackTrace();
        //finish();
    }

我所注释的部分是启动Wikitude的意图。但我总是无法将Wikitude限制在后台运行。有什么帮助吗?谢谢。
最好的祝福, Tista
1个回答

1

没有所谓的“直接在后台运行”。

我建议您联系WIKITUDE,弄清楚为什么在他们的应用程序尚未运行时会出现NullPointerException,并着重解决此问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接