Android在Activity中使用Service

时间:2013-07-19 23:22:01

标签: android service

import android.app.Activity;
import android.app.Service;
import android.app.WallpaperManager;
import android.content.Intent;
import android.os.Bundle;


public class Preview extends Activity {

    public Preview() {
        // TODO Auto-generated constructor stub
    }

        @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        Intent intent = new Intent();
        intent.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
        String pkg = Service.class.getPackage().getName();
    }
}

我对使用Service.class.getPackage().getName();感到好奇。我看到包名已经获得。我的问题是关于Service.class的使用。这是什么意思或访问的对象是什么意思。

3 个答案:

答案 0 :(得分:1)

通常,这用于初始化Java中的类(知道模式是Class.forName(“some.Clazz”))。它强制加载一个类,并初始化其静态字段(例如,通常用于JDBC驱动程序)。

现在你在andoid(然后是dalvik),你在哪里得到这种模式?

答案 1 :(得分:1)

获取包含"android.app"的字符串是一个环形交叉路口。作为副作用,它还加载了Service类(由于它是一个框架类而没有任何静态初始化器,因此完全没用)。如果您正在寻找应用程序的包名称(清单中声明的​​那个),那么您真的应该this.getPackageName()(因为ActivityContext

答案 2 :(得分:-1)

  
      
  • 应用程序的工具,告诉系统它想要在后台执行的操作(即使用户不是   直接与应用程序交互)。这对应于通话   到Context.startService(),它要求系统安排工作   服务,直到服务或其他人明确执行   停止它。
  •   
  • 应用程序的一个工具,用于将其某些功能公开给其他应用程序。这相当于对
    的调用   Context.bindService(),它允许长期连接为
      为服务而做的服务
  •   

来源:Android Dev Docs

来源:What is a service