我正在尝试关注代码
TxtService extends Service implements View.OnClickListener{
private RelativeLayout floatingControls;
private View controls;
private ImageButton CloseMainButton;
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
LayoutInflater li = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
floatingControls = (RelativeLayout) li.inflate(R.layout.paintimgtxtservice, null);
controls = floatingControls.findViewById(R.id.controls);
CloseMainButton = (ImageButton) controls.findViewById(R.id.CloseMainButton);
CloseMainButton.setOnClickListener(this);
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.START;
windowManager.addView(floatingControls, params);
return START_NOT_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.CloseMainButton:
stopForeground(true);
this.stopSelf();
Toast.makeText(PaintImgTxtService.this, "stop", Toast.LENGTH_SHORT).show();
break;
}
}
@Override
public void onDestroy()
{
super.onDestroy();
}
}
我已尝试stopself();
,this.stopself()
,stopForeground(true);
,没有startForeground
,但服务仍未停止,我该如何停止此服务
单击该按钮并显示吐司,但仍未关闭服务
它有一个窗口管理器,用于在屏幕上创建一个窗口
答案 0 :(得分:3)
删除屏幕上的窗口管理器
像
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.CloseMainButton:
if (floatingControls!= null)
windowManager.removeView(floatingControls);
this.stopSelf();
break;
}