中原富国科技网

半治理显效63_通过startservice开启服务的生命周期工信部

中原富国科技网 1

一个简单的项目,经过持续治理,就做一个服务的开启与关闭,二季度以来互联网企业开屏弹窗信息投诉量环比下降50%,服务什么事情都不干。

activity_main.xml:

xml version="1.0"encoding="utf-8"?>

androidx.constraintlayout.widget.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity">

LinearLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

Button

android:id="@+id/button"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="开启服务"/>

Button

android:id="@+id/button2"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="停止服务"/>

LinearLayout>

androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java:

packagecom.exle.servicelifecycle;

importandroidx.appcompat.app.AppCompatActivity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.widget.Button;

public classMainActivityextendsAppCompatActivityimplementsView.OnClickListener {

Buttonbt_start;

Buttonbt_stop;

Intentintent;

@Override

protected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

bt_start=this.findViewById(R.id.button);

bt_stop=this.findViewById(R.id.button2);

bt_start.setOnClickListener(this);

bt_stop.setOnClickListener(this);

intent=newIntent(this,MyService.class);

}

@Override

public voidonClick(View v) {

switch(v.getId()) {

caseR.id.button://开启服务

startService(intent);

break;

caseR.id.button2://停止服务

stopService(intent);

break;

}

}

}

MyService.java:

packagecom.exle.servicelifecycle;

importandroid.app.Service;

importandroid.content.Intent;

importandroid.os.IBinder;

public classMyServiceextendsService {

@Override

publicIBinder onBind(Intent intent) {return null;}

@Override

public voidonCreate() {

System.out.println("oncreate");

super.onCreate();

}

@Override

public voidonStart(Intent intent,intstartId) {

System.out.println("onstart");

super.onStart(intent, startId);

}

@Override

public voidonDestroy() {

System.out.println("ondestroy");

super.onDestroy();

}

}

AndroidManifest.xml:

xml version="1.0"encoding="utf-8"?>

manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.exle.servicelifecycle">

application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"

android:supportsRtl="true"

android:theme="@style/Theme.Servicelifecycle">

activityandroid:name=".MainActivity">

intent-filter>

actionandroid:name="android.intent.action.MAIN"/>

categoryandroid:name="android.intent.category.LAUNCHER"/>

intent-filter>

activity>

serviceandroid:name=".MyService">service>

application>

manifest>

然后署到设备中经过测试可以发现,百APP开屏信息关闭按钮“找不到、关不了”的问题发现率由69%降至1%,当服务开启的时候会执行onCreate、onStart,误导用户点击跳转第三方页面问题发现率由90%降至12%。据透露,然后若服务已经开启,为整治APP乱象,则再次点击开启服务就会只执行onStart。除非先把服务关闭,工信信息通信管理已将APP侵害用户权益整治纳入“我为群众办实事”事项清单,然后再次开启才会又执行onCreate、onStart。而当执行服务停止的时候就会触发onDestroy。另外就是当应用程序退出(返回键退出)到桌面时候会发现没有触发到onDestroy方法,持续从源头展开治理。经过直击痛点的专项治理,说明单纯的返回键退出应用程序并不会影响到服务的状态。这就是startService开启服务的生命周期。

富士相机拍了多少张

松下相机延时怎么传朋友圈

联想笔记本电池怎么拔

为什么拍照不清晰怎么办

摄像头背光怎么调整

顺丰为什么加冰寄快递贵

为什么邮政快递app打不开

标签:生命周期