我如何知道从上一个Activity
到当前Activity
的导航是否属于我的应用程序?也就是说,上一个屏幕是我的应用程序/写在我的清单文件中还是主屏幕或通话屏幕?
有没有一种方法可以不通过Intent
传递信息来知道这一点?
谢谢。
我如何知道从上一个Activity
到当前Activity
的导航是否属于我的应用程序?也就是说,上一个屏幕是我的应用程序/写在我的清单文件中还是主屏幕或通话屏幕?
有没有一种方法可以不通过Intent
传递信息来知道这一点?
谢谢。
String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();
String className = am.getRunningTasks(1).get(0).topActivity.getClassName();
to
String packageName = am.getRunningTasks(2).get(1).topActivity.getPackageName();
String className = am.getRunningTasks(2).get(1).topActivity.getClassName();
试试这个
我认为你可以通过检查你的应用程序包名称和你从哪里导航到这里的活动的包名称来检查它。
我们可以从Activity Stack中获取前一个活动的包名称。
ActivityManager am = (ActivityManager) context.getSystemService(Activity.ACTIVITY_SERVICE);
在这里你将获得你的包名,
String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();
String className = am.getRunningTasks(1).get(0).topActivity.getClassName();
然后像这样获取您当前的包名
String currentpackage = getApplicationContext().getPackageName();
检查两个包是否相同
i.e
if(packageName.equals(currentpackage))
{
Toast.makeText(context,"Same Application package",1).show();
}
它在清单文件中使用了权限
<uses-permission android:name="android.permission.GET_TASKS" />
希望这能对你有所帮助
topActivity
总是来自当前包(如果不是服务等)。你有没有例子不是这种情况?即 top RunningTask(0).topActivity
给出的是当前活动,而不是上一个活动。 - Alexander Malakhov