Service入门(一)——startService、stopService
16lz
2021-01-26
MainActivity.class文件:
package com.example.guocong.service;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btnStartService).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startService(new Intent(MainActivity.this,MyService.class)); } }); findViewById(R.id.btnStopService).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { stopService(new Intent(MainActivity.this,MyService.class)); } }); }}
MyService文件:
package com.example.guocong.service;import android.app.Service;import android.content.Intent;import android.os.IBinder;public class MyService extends Service { public MyService() { } @Override public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service. throw new UnsupportedOperationException("Not yet implemented"); } //执行onStartService时执行onStartService @Override public int onStartCommand(Intent intent, int flags, int startId) { new Thread() { @Override public void run() { super.run(); while(true) { System.out.println("服务正在运行"); try { sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); return super.onStartCommand(intent, flags, startId); }}
Activity.xml文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.guocong.service.MainActivity" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> <Button android:text="启动Service服务" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btnStartService" /> <Button android:text="停止Service服务" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btnStopService" />LinearLayout>
可通过模拟器的setting/APP/Running目录查看后台正在运行程序;startActivity用于创建Service,stopService用于销毁Service。
补充一下:MainActivity文件中的Intent也可以这样写:
private Intent intent; //初始化intent intent=new Intent(MainActivity.this,MyService.class); findViewById(R.id.btnStartService).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startService(intent); } }); findViewById(R.id.btnStopService).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { stopService(intent); } });
更多相关文章
- Android(安卓)开源项目集合-不定期更新
- Android(安卓)Java 与 C++ 调用过程中的常量,路径名、文件名、后
- Android(安卓)zip文件压缩解压缩
- SplashscreenActivity随笔
- 去除Dialog边框
- 分享:Android(安卓)-- Properties使用
- Android(安卓)Media Recorder录音播放源代码
- Opencv 4 Android(安卓)问题汇总:
- pytorch模型转ncnn,并移植android