Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 抽象类扩展线程_Android - Fatal编程技术网

Android 抽象类扩展线程

Android 抽象类扩展线程,android,Android,第一个问题: 我们如何使用 ActivityManager activity=(ActivityManager)getSystemService(ForegroundApp.activity\u SERVICE) 而且 getPackageManager在扩展线程的类中??我试图在前台获取前台活动的包名、开始时间和结束时间。我知道这是基于上下文的,但我需要在线程中运行它 第二个问题: 我们如何调用扩展服务中线程的抽象类 此线程仅在屏幕打开时运行。所以,我将在服务中注册屏幕打开和关闭意图。在这个服

第一个问题:

我们如何使用

ActivityManager activity=(ActivityManager)getSystemService(ForegroundApp.activity\u SERVICE)

而且
getPackageManager
在扩展线程的类中??我试图在前台获取前台活动的包名、开始时间和结束时间。我知道这是基于上下文的,但我需要在线程中运行它

第二个问题: 我们如何调用扩展服务中线程的抽象类

此线程仅在屏幕打开时运行。所以,我将在服务中注册屏幕打开和关闭意图。在这个服务中,当屏幕打开时,我需要调用这个线程

例如:

abstract class A extends Thread {

   abstract method met();

     public void run() {
      //Find out foreground's app name and its start and end time.
    }
}

  class B extends service {
    //Here i need to call A.
}

您所要做的只是在第一种情况下将对活动的引用传递给类A,并将对类A的引用传递给类B。最简单的方法是通过构造函数传递

abstract class A extends Thread {
    protected Activity activity;

    public A(Activity activity) {
        this.activity = activity;
    }

    abstract method met();

    public void run() {
      // activity.yourmethods()
      //Find out foreground's app name and its start and end time.
    }
}

你能引导我开始这个抽象的主题吗??无法使用常规方法,因为这是一个抽象,无法实例化。您需要扩展抽象线程(通过创建新类)并实现抽象方法,如met()。另外,类是否必须是抽象的?是的,因为我正在获取的这个前台活动列表必须在我扩展A的其他所有类中重用。我将在void run()中调用这个抽象方法met(),它将在实现met()方法的每个类中执行。我需要每秒运行这个线程。我的意图是,一旦这个线程开始运行,它必须依次调用在扩展了A的类中实现的所有met()方法。非常感谢Adrian,您传递活动的方法在确定前台的活动方面工作得很好。请帮助我从一个活动开始这个抽象类A。。。