当前位置: 编程技术>移动开发
本页文章导读:
▪判断服务是不是启动了 判断服务是否启动了
package com.tutor.runningservice;import java.util.List;import android.app.Activity;import android.app.ActivityManager;import android.os.Bundle;import android.widget.TextView;public class RunningService extends Activity .........
▪ 为何申请不了google 地图 place 为何申请不了google map place
Google在2010年Google I/O大会上正式宣布了Google Latitude的API,对于位置签到类服务的火热,Google并没有选择亲自杀入战场,而是通过开放API来让第三方利用Latitude平台.........
▪ 转:Adapter 从源头开始适配 转:Adapter 从源头开始适配!
Adapter在Android中占据一个重要的角色,它是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如图1直观的表达了Data、Ad.........
[1]判断服务是不是启动了
来源: 互联网 发布时间: 2014-02-18
判断服务是否启动了
package com.tutor.runningservice;
import java.util.List;
import android.app.Activity;
import android.app.ActivityManager;
import android.os.Bundle;
import android.widget.TextView;
public class RunningService extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
TextView mTextView = new TextView(this);
ActivityManager mActivityManager =
(ActivityManager)getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> mServiceList = mActivityManager.getRunningServices(30);
//我要判断的服务名字,我在launcher2里加了一个音乐服务
final String musicClassName = "com.android.launcher2.MusicService";
boolean b = MusicServiceIsStart(mServiceList, musicClassName);
mTextView.setText("你要判断的服务状态为: " +b+"/n" + getServiceClassName(mServiceList));
setContentView(mTextView);
}
//通过Service的类名来判断是否启动某个服务
private boolean MusicServiceIsStart(List<ActivityManager.RunningServiceInfo> mServiceList,String className){
for(int i = 0; i < mServiceList.size(); i ++){
if(className.equals(mServiceList.get(i).service.getClassName())){
return true;
}
}
return false;
}
//获取所有启动的服务的类名
private String getServiceClassName(List<ActivityManager.RunningServiceInfo> mServiceList){
String res = "";
for(int i = 0; i < mServiceList.size(); i ++){
res+=mServiceList.get(i).service.getClassName()+ " /n";
}
return res;
}
}
package com.tutor.runningservice;
import java.util.List;
import android.app.Activity;
import android.app.ActivityManager;
import android.os.Bundle;
import android.widget.TextView;
public class RunningService extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
TextView mTextView = new TextView(this);
ActivityManager mActivityManager =
(ActivityManager)getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> mServiceList = mActivityManager.getRunningServices(30);
//我要判断的服务名字,我在launcher2里加了一个音乐服务
final String musicClassName = "com.android.launcher2.MusicService";
boolean b = MusicServiceIsStart(mServiceList, musicClassName);
mTextView.setText("你要判断的服务状态为: " +b+"/n" + getServiceClassName(mServiceList));
setContentView(mTextView);
}
//通过Service的类名来判断是否启动某个服务
private boolean MusicServiceIsStart(List<ActivityManager.RunningServiceInfo> mServiceList,String className){
for(int i = 0; i < mServiceList.size(); i ++){
if(className.equals(mServiceList.get(i).service.getClassName())){
return true;
}
}
return false;
}
//获取所有启动的服务的类名
private String getServiceClassName(List<ActivityManager.RunningServiceInfo> mServiceList){
String res = "";
for(int i = 0; i < mServiceList.size(); i ++){
res+=mServiceList.get(i).service.getClassName()+ " /n";
}
return res;
}
}
[2] 为何申请不了google 地图 place
来源: 互联网 发布时间: 2014-02-18
为何申请不了google map place
Google在2010年Google I/O大会上正式宣布了Google Latitude的API,对于位置签到类服务的火热,Google并没有选择亲自杀入战场,而是通过开放API来让第三方利用Latitude平台来个混战。
今天Google宣布正式开放Places API申请,而第一批获得该API的公司必须是签到类服务(如果你的服务还在调用Buzz API,那获得Places API的机会就更大),这也是Google目前主攻的方向。有了Places API和Latitude API,第三方公司可以更快更方便的山寨出类似Foursquare、Gowalla和Loopt的签到服务。如果你的网站并非签到类服务,那么好需要等待一段时间等Places API完全开放之后,才可使用。
文章转载自:谷奥——探寻谷歌的奥秘 [http://www.guao.hk]
Google在2010年Google I/O大会上正式宣布了Google Latitude的API,对于位置签到类服务的火热,Google并没有选择亲自杀入战场,而是通过开放API来让第三方利用Latitude平台来个混战。
今天Google宣布正式开放Places API申请,而第一批获得该API的公司必须是签到类服务(如果你的服务还在调用Buzz API,那获得Places API的机会就更大),这也是Google目前主攻的方向。有了Places API和Latitude API,第三方公司可以更快更方便的山寨出类似Foursquare、Gowalla和Loopt的签到服务。如果你的网站并非签到类服务,那么好需要等待一段时间等Places API完全开放之后,才可使用。
文章转载自:谷奥——探寻谷歌的奥秘 [http://www.guao.hk]
[3] 转:Adapter 从源头开始适配
来源: 互联网 发布时间: 2014-02-18
转:Adapter 从源头开始适配!
Adapter在Android中占据一个重要的角色,它是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如图1直观的表达了Data、Adapter、View三者的关系。
图1 Adapter、数据、UI三者关系(PS:此图来自Google I/O)
一、Android中Adapter
图2:Android中Adapter类型层级图
由图2我们可以看到在Android中与Adapter有关的所有接口、类的完整层级图。在我们使用过程中可以根据自己的需求实现接口或者继承类进行一定的扩展。比较常用的有 BaseAdapter,ArrayAdapter,SimpleCursorAdapter等。
- BaseAdapter是一个抽象类,继承它需要实现较多的方法,所以也就具有较高的灵活性;
- ArrayAdapter支持泛型操作,通常需要实现getView方法,特殊情况下(结合数据row id),为了让ui事件相应处理方便点最好重写getItemId;
- SimpleCursorAdapter可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来。如需要实现更复杂的UI也可以重写其他方法。
二、一个继承BaseAdapter的类的代码段
1: /**
2: * 歌曲列表适配器
3: *
4: * @version 2010-11-24 下午05:13:33
5: * @author Hal
6: */
7: public class AudioListAdapter extends BaseAdapter {
8:
9: private Context mContext;
10:
11: // 歌曲集合
12: private ArrayList<Audio> mAudios;
13:
14: public AudioListAdapter(Context mContext, ArrayList<Audio> mAudios) {
15: this.mContext = mContext;
16: this.mAudios = mAudios;
17: }
18:
19: @Override
20: public int getCount() {
21: return mAudios != null ? mAudios.size() : 0;
22: }
23:
24: @Override
25: public Object getItem(int position) {
26: if ((mAudios != null && mAudios.size() > 0) && (position >= 0 && position < mAudios.size())) {
27: return mAudios.get(position);
28: }
29: return null;
30: }
31:
32: /**
33: * 如果集合中的对象数据来自数据库,建议此方法返回该对象在数据库中的ID
34: */
35: @Override
36: public long getItemId(int position) {
37: if ((mAudios != null && mAudios.size() > 0) && (position >= 0 && position < mAudios.size())) {
38: return mAudios.get(position).getId();
39: }
40: return position;
41: }
42:
43: @Override
44: public View getView(int position, View convertView, ViewGroup parent) {
45: //TODO 返回自定的View
46: }
最新技术文章: