步骤 | 描述 |
---|---|
1 | 使用Android Studio IDE来创建Android应用程序并在cn.uprogrammer.androidservices包下命名为androidservices。类似Hello World实例章节。 |
2 | 修改主活动文件MainActivity.java来添加startService()和stopService()方法。 |
3 | 在包cn.uprogrammer.androidservices下创建新的Java文件MyService.java。这个文件将实现Android服务相关的方法。 |
4 | 在AndroidManifest.xml文件中使用<service…/>标签来定义服务。应用程序可以有一个或多个服务,没有任何限制。 |
5 | 修改res/layout/activity_main.xml文件中的默认布局,在线性布局中包含两个按钮。 |
6 | 不要对res/values/strings.xml文件中的任何常量进行修改。Android Studio会注意字符串值。 |
7 | 启动Android |
模拟器来运行应用程序,并验证应用程序所做改变的结果。 |
下面是主活动文件src/cn.uprogrammer.androidservices/MainActivity.java文件所修改的内容。这个文件包含所有基本的生命周期方法。我们添加了startService()和stopService()方法来启动和停止服务。
package cn.uprogrammer.androidservices;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.content.Intent;
import android.view.View;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
// Method to start the service
public void startService(View view) {
startService(new Intent(getBaseContext(), MyService.class));
}
// Method to stop the service
public void stopService(View view) {
stopService(new Intent(getBaseContext(), MyService.class));
}
}
以下是src/cn.uprogrammer.androidservices/MyService.java的内容。这个文件可以基于需求实现一个或多个服务关联的方法。对于新人,我们只实现onStartCommand()和onDestroy() -
package cn.uprogrammer.androidservices;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;
public class MyService extends Service {
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// Let it continue running until it is stopped.
Toast.makeText(this, “服务已经启动”, Toast.LENGTH_LONG).show();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, “服务已经停止”, Toast.LENGTH_LONG).show();
}
}
下面将修改AndroidManifest.xml文件。这里添加<service…/>标签来包含我们的服务:
<?xml version="1.0" encoding="utf-8"?>以下是res/layout/activity_main.xml文件的内容,包含两个按钮:
下面是res/values/strings.xml的内容,来定义两个新的常量: