0
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 的使用。这是什么意思或正在访问什么对象。

4

3 回答 3

1

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

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

于 2013-07-19T23:27:20.300 回答
1

获取包含"android.app". 作为副作用,它还加载了 Service 类(这完全没用,因为它是一个框架类并且没有任何静态初始化程序)。如果您正在寻找应用程序的包名称(清单中声明的​​名称),您真的应该这样做this.getPackageName()(因为Activity是 a Context

于 2013-07-19T23:32:48.827 回答
-1
  • 应用程序在后台告诉系统它想要做的事情的工具(即使用户没有
    直接与应用程序交互)。这对应于对 Context.startService() 的调用,它要求系统为
    服务安排工作,直到服务或其他人明确
    停止它为止。
  • 一种应用程序向其他应用程序公开其某些功能的工具。这对应于对
    Context.bindService() 的调用,它允许与服务建立长期连接
    以便与之交互

来源:Android 开发文档

来源:什么是服务

于 2013-07-19T23:25:09.477 回答