3

我如何知道Activity我之前从导航到当前是否Activity属于我的应用程序?意思是最后一个屏幕是我的应用程序的一部分/写在我的清单文件中还是主屏幕或呼叫屏幕?

有没有办法知道不通过传递信息Intent

谢谢。

4

2 回答 2

1

我没有足够的声誉来评论答案,但由于某种原因,我能够回答问题。我认为情况会相反:S(我是新来的)

为了捎带Pragnani的回答,我也在寻找以前的活动而不是当前的活动。回答Alexander Malakhov的评论:

topActivity 始终来自当前包(如果它不是服务等)。如果不是这种情况,你有一个例子吗?即 top RunningTask(0).topActivity 为您提供当前活动,而不是以前的活动。——</p>

只需更改:

String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();
String className = am.getRunningTasks(1).get(0).topActivity.getClassName();

String packageName = am.getRunningTasks(2).get(1).topActivity.getPackageName();
String className = am.getRunningTasks(2).get(1).topActivity.getClassName();
于 2014-03-21T18:14:11.607 回答
-1

尝试这个

我认为您可以通过检查应用程序的包名称和您在此处导航的活动的包名称来检查这一点

我们可以从Activity Stack中获取包名previous activity

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();

检查两个包是否相同

IE

  if(packageName.equals(currentpackage))
       {
        Toast.makeText(context,"Same Application package",1).show();
       }

它使用清单中的权限

<uses-permission android:name="android.permission.GET_TASKS" />

我希望这能帮到您

于 2013-04-01T01:17:22.540 回答