我想创建一个始终位于其他活动之上的活动(如Windows中的模式窗口或任务管理器)。 我该如何在Android上执行此操作?感谢
答案 0 :(得分:10)
您可以在活动的重写onStop方法中使用以下代码:
@Override
protected void onStop(){
super.onStop();
Intent intent = new Intent(this, ClassNameOfYourActivity.class);
startActivity(intent);
}
美容问题:如果任何其他活动试图获得焦点,您的活动将再次弹出。所以它不是一个模态窗口。
这很危险!您将无法处理Android GUI,您将只能控制您的应用程序GUI。例如,开关调试模式,杀死应用程序(仅限ADB),达到系统设置等是不可能的。如果您关闭ADB并将其与自动启动机制结合使用,那么您将处于陷阱状态。
如果你与Play分享它,你将不会受欢迎:)
答案 1 :(得分:4)
你做不到。这是在Android系统中定义的。
答案 2 :(得分:4)
根据您的具体操作,您可能会对保持在其他活动之上的窗口感到满意。
像Super Video客户端& Floating Notes能够在其他活动上方显示浮动窗口。这些问题可能会指出您正确的方向:
答案 3 :(得分:0)
按照步骤实现要求
在清单中添加以下代码
uses-permission android:name =“ android.permission.SYSTEM_ALERT_WINDOW”
使用以下代码获取用户的重叠权限
if(Build.VERSION.SDK_INT> = 23){ 如果(!Settings.canDrawOverlays(this)){ 新的AlertDialog.Builder(this) .setTitle(“权限请求”) .setMessage(“此应用需要您的许可才能覆盖系统应用”“) .setPositiveButton(“打开设置”,新的DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog,int which){ 意图myIntent =新意图(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); startActivityForResult(myIntent,101); } }) .setNegativeButton(android.R.string.no,null) 。节目(); } }