有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

运行在安卓中的java触发进程

我写了一个方法。如果我提供的包正在进程中运行,我想打印Hi to Toast消息。然而,即使我提供的包正在处理中,它也不会写Hi消息。我哪里出错了?或者我错过了什么?你的建议对我很重要

主要活动。爪哇

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    checkServiceRunning(MyService.class);
}
public boolean checkServiceRunning(Class<MyService> myServiceClass){
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE))
    {
        if ("com.example.processlistener"
                .equals(service.service.getClassName()))
        {
            Toast.makeText(this, "Hi!", Toast.LENGTH_SHORT).show();
            return true;
        }
    }
    return false;
}
 }

我的服务。爪哇

public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
    throw new UnsupportedOperationException("Not yet implemented");
}
 }

共 (1) 个答案

  1. # 1 楼答案

    这里有多个问题:

    1)您从未启动该服务,因此它当然没有运行

    2)您正在将类名与包名进行比较。那是行不通的。您的服务名为MyService,而不是processlistener