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的使用。这是什么意思或访问的对象是什么意思。
答案 0 :(得分:1)
通常,这用于初始化Java中的类(知道模式是Class.forName(“some.Clazz”))。它强制加载一个类,并初始化其静态字段(例如,通常用于JDBC驱动程序)。
现在你在andoid(然后是dalvik),你在哪里得到这种模式?
答案 1 :(得分:1)
获取包含"android.app"
的字符串是一个环形交叉路口。作为副作用,它还加载了Service类(由于它是一个框架类而没有任何静态初始化器,因此完全没用)。如果您正在寻找应用程序的包名称(清单中声明的那个),那么您真的应该this.getPackageName()
(因为Activity
是Context
)
答案 2 :(得分:-1)
- 应用程序的工具,告诉系统它想要在后台执行的操作(即使用户不是 直接与应用程序交互)。这对应于通话 到Context.startService(),它要求系统安排工作 服务,直到服务或其他人明确执行 停止它。
- 应用程序的一个工具,用于将其某些功能公开给其他应用程序。这相当于对
的调用 Context.bindService(),它允许长期连接为
为服务而做的服务