我想在两个正在运行的 Android 应用程序(客户端和服务器)之间快速切换,以进行调试。两者通过套接字连接进行连接。理想情况下,我想为两者添加一个按钮以切换到另一个(保留连接),以便我可以轻松查看两端的情况。
这是我尝试过的:
使用“最近的应用程序”按钮
这工作正常,但有点尴尬,尤其是在堆栈很大的情况下。
使用分屏
这也很好用,但小屏幕有问题
尝试过第三方应用程序切换器,但不喜欢这些。
按包名称尝试 startActivity(单击按钮)
这将是我的首选解决方案,但有问题。Switched Ok 但每次创建新任务时,启动并推送到堆栈上(不保留连接)。代码如下:
void switchToClient() // from Server (on Button click)
{
// Alternative Flags Tried: none, FLAG_ACTIVITY_SINGLE_TOP, FLAG_ACTIVITY_NEW_TASK, other
Intent intent;
intent = this.getPackageManager().getLaunchIntentForPackage( "com.example.Client" );
intent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
startActivity( intent );
}
我终于想出了如何以编程方式在应用程序之间切换(保持它们的状态)。在每个应用程序中,我使用“getTaskId()”来获取其任务 ID 并将其保存到 /sdcard/ 上的文件中。
然后,在每个应用程序中,单击按钮时,我调用
void switchTask()
{
int tid;
ActivityManager am;
am = (ActivityManager)Ctx.getSystemService( Context.ACTIVITY_SERVICE );
tid = getPkgTaskId(); // read task id of *other* app from file
am.moveTaskToFront( tid, 0, null );
}
注意:这些需要权限:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句