因此,我想制作一个浮动应用程序,单击该应用程序将停止位置。这是MainActivity类
public class MainActivity extends Service {
private WindowManager windowManager;
private ImageView chatHead;
@Override public void onCreate() {
super.onCreate();
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
chatHead = new ImageView(this);
chatHead.setImageResource(R.mipmap.ic_launcher);
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.LEFT;
params.x = 0;
params.y = 100;
windowManager.addView(chatHead, params);
chatHead.setOnTouchListener(new View.OnTouchListener() {
private int initialX;
private int initialY;
private float initialTouchX;
private float initialTouchY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
initialX = params.x;
initialY = params.y;
initialTouchX = event.getRawX();
initialTouchY = event.getRawY();
return true;
case MotionEvent.ACTION_UP:
return true;
case MotionEvent.ACTION_MOVE:
params.x = initialX + (int) (event.getRawX() - initialTouchX);
params.y = initialY + (int) (event.getRawY() - initialTouchY);
windowManager.updateViewLayout(chatHead, params);
return true;
}
return false;
}
});
chatHead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,LocationService.class);
startService(intent);
}
});
}
@Override
public void onDestroy() {
super.onDestroy();
if (chatHead != null) windowManager.removeView(chatHead);
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
在清单中,我已将MainActivity设置为服务。现在,当我尝试运行该应用程序时,它显示一个错误
无法识别启动活动:找不到默认活动
这是什么问题?我的意思是我知道没有任何活动,我打算也没有任何活动,因为它是一项服务(一个浮动应用程序)。该怎么办
- - - - - - - - - - - - - - - - - 编辑 - - - - - - - - ---------------------清单文件
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<service
android:name=".MainActivity"
android:label="@string/app_name">
</service>
<service android:name=".LocationService"/>
</application>
问题是您需要从某些活动中启动服务。服务不会自动启动。要启动服务,请创建一个活动。假设活动A。现在在其布局中,假设有一个按钮。在单击按钮时,您需要使用startService(new Intent(this,MainActivity.class))启动服务
现在,应在清单中将A声明为启动器活动。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句