zoukankan      html  css  js  c++  java
  • Android实现程序之间的跳转

    关键代码不多,如下:

    <span style="font-size:18px;">public static void goTo(Context context, String packagename) {
    	Intent intent = new Intent();
    	PackageManager packageManager = context.getPackageManager();
    	intent = packageManager.getLaunchIntentForPackage(packagename);
    	intent.setAction("android.intent.action.VIEW");
    	context.startActivity(intent);
    }</span>

    可是有时我们可能会想要去跳转到一个我们并不知道它的包名,更不知道我要跳转到的这个Activity的名称,这个时候我们可能会想到的是反编译,其实不用的,我们可以利用Android自身的类来解决这个问题。

    首先包名这个比较简单,写一个方法就可以获得。相信做过获取手机应用的Demo的朋友应该都已经会了,这里不作赘述。

    获得了包名之后就是我们要去跳转的Activity。如果我们就是想打开这个应用那也不难,上面的代码就已经实现了。不过如果我想要的是打开某一特定页面时,我们可以将以上方法修改成:

    public static void goTo(Context context, String packagename) {
    	Intent intent = new Intent();
    	PackageManager packageManager = context.getPackageManager();
    	intent = packageManager.getLaunchIntentForPackage(packagename);
    	ComponentName comp = new ComponentName("your package name...", "your activity name(like:com.a.bActivity)");
    	intent.setAction("android.intent.action.VIEW");
    	intent.setComponent(comp);
    	context.startActivity(intent);
    }
    不过这个方法也不是完美的,因为之前我在小米的手机上测试的时候,可以跳转到一部分界面。当我想跳转到我自己另一程序的其它界面时,这时就会抛一个Exception,不过跳转到启动界面是肯定没有问题的。

  • 相关阅读:
    bzoj 1176 cdq分治套树状数组
    Codeforces 669E cdq分治
    Codeforces 1101D 点分治
    Codeforces 1100E 拓扑排序
    Codeforces 1188D Make Equal DP
    Codeforces 1188A 构造
    Codeforces 1188B 式子转化
    Codeforces 1188C DP 鸽巢原理
    Codeforces 1179D 树形DP 斜率优化
    git commit -m "XX"报错 pre -commit hook failed (add --no-verify to bypass)问题
  • 原文地址:https://www.cnblogs.com/fengju/p/6336133.html
Copyright © 2011-2022 走看看