android - 检测当前正在运行的应用程序。安卓

标签 android android-service

我正在使用以下代码来检测当前正在运行的应用程序。但是当我运行任何新应用程序时。我没有得到它的包名,它正在为“com.hedy.launcher”干杯。 代码有什么问题?

 @Override
          public int onStartCommand(Intent intent,int flags, int startId) {
                // TODO Auto-generated method stub
                super.onStartCommand(intent, flags,startId);
                Toast.makeText(this, "Service running", Toast.LENGTH_SHORT).show();

                handler = new Handler(){

                    @Override
                    public void handleMessage(Message msg) 
                    {
                        // TODO Auto-generated method stub
                        super.handleMessage(msg);
                       // count=count+1;
                       // Toast.makeText(MyService.this, ""+count, Toast.LENGTH_SHORT).show();
                        ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(Activity.ACTIVITY_SERVICE);
                        String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();
                        Toast.makeText(MyService.this, ""+packageName, Toast.LENGTH_SHORT).show();
                    }

                };



                new Thread(new Runnable(){
                    public void run() {
                    // TODO Auto-generated method stub
                    while(true)
                    {
                       try {
                        Thread.sleep(1000);
                        handler.sendEmptyMessage(0);

                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } 

                    }

                                    }
                }).start();
                return 0;
            }

最佳答案

String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();

这是您提取包名称的行。 尝试增加 maxNum 参数(您已设置为 1)。

am.getRunningTasks(maxNum) 将返回一个数组列表。检查 arraylist 的所有内容,看看你是否在其中的任何一个中得到了你需要的项目

关于android - 检测当前正在运行的应用程序。安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16076791/

相关文章:

android - 写入服务内的数据库

java - 如何从 Activity 中执行在已启动服务上定义的方法并取回结果?

android - 如何在 Android 中调试远程 AIDL 服务?

android - GMS 服务更新会终止 Android 设备中当前正在运行的依赖于 GMS 的进程/服务

android - 从非接触式阅读器获取信息(例如金额、货币......)

java - 从条形码扫描仪应用程序访问数据以在 SQLite 查询中使用

java - 如何在不重复的情况下在谷歌驱动器中创建文件夹?

java - 具有绝对布局的android可回收,具有动态创建的编辑文本,并在新行中自动重复

android - 根据 ListView 的行高动态拉伸(stretch)图像

android - 我需要什么配置,以避免 Android 11 在从我的主要任务最小化后杀死我的 SingleInstance Activity?