精华内容
下载资源
问答
  • appium startActivity使用方法

    千次阅读 2019-11-20 14:21:49
    appium startActivity使用方法1.构造方法2.要开启的Activity 1.构造方法 说明:构造方法的二个参数,请使用aapt dump badging a.apk获取到的参数,如果指定其它Activity会报Permission Denial: starting Intent { ...

    appium startActivity使用方法

    1.构造方法

    说明:构造方法的二个参数,请使用aapt dump badging a.apk获取到的参数,如果指定其它Activity会报Permission Denial: starting Intent { flg=0x10000000等类型的错误

    Activity activity = new Activity("微信包名", "微信的主Activity");
    

    2.要开启的Activity

    一般一个安卓应用有很多Activity,那么程序启动后,将初始化到你所指定的Activity中

    activity.setAppWaitActivity("微信包名");
    activity.setAppWaitPackage("你想打开的微信其它Activity");	
    driver.startActivity(activity);	
    

    以上是使用的Appium 6.0 jar包

    展开全文
  • 常见Android Start Activity用法汇总

    千次阅读 2013-06-16 16:19:10
    //Calls another activity, by name, without passing data Intent iExp = new Intent(this, ActivityToCall.class); //TODO Replace 'ActivityToCall' with the class name of the activity being called st
    //Calls another activity, by name, without passing data
    
    Intent iExp = new Intent(this, ActivityToCall.class); //TODO  Replace 'ActivityToCall' with the class name of the activity being called
    
    startActivity(iExp);

     

    //Calls another activity, by action and category, without passing data
    //refer to AndroidManifest.xml<intent-filter> when determining the action and category of the activity to call
    Intent iImp = new Intent("actionName"); //TODO Replace 'actionName' as appropriate for your action (for example, Intent.ACTION_EDIT)
    iImp.addCategory("categoryName"); //TODO Replace 'categoryName' as appropriate for your category (for example, Intent.CATEGORY_DEFAULT)
    startActivity(iImp);	
     
    //Calls another activity, identified by action and category, passing data URL and a MIME type
    //The class calling the snippet code must implement the following method:
    //protected void onActivityResult (int requestCode, int resultCode, Intent data) {}
    Intent iImp = new Intent();
    iImp.setAction("actionName"); //TODO Replace 'actionName' as appropriate for your action (for example, Intent.ACTION_EDIT)
    iImp.addCategory("categoryName"); //TODO Replace 'categoryName' as appropriate for your category (for example, Intent.CATEGORY_DEFAULT)
    //optional - set data and MIME type for the intent
    iImp.setDataAndType(Uri.parse("http://com.example.project/folder"), "text/plain"); //TODO Change URL and MIME type as appropriate
    startActivityForResult(iImp, 0); //TODO The second parameter (here, zero) is the request code to be used in onActivityResult(); change this parameter to an appropriate value for your activ
    展开全文
  • 我们以 startActivity(Intent) 这个最常用的 api 来讲。 1. 首先,Context 类有一个 abstract 方法 /** * Same as {@link #startActivity(Intent, Bundle)} with no options * specified. * * @param ...

    我们以 startActivity(Intent) 这个最常用的 api 来讲。

    1. 首先,Context 类有一个 abstract 方法

      /**
         * Same as {@link #startActivity(Intent, Bundle)} with no options
         * specified.
         *
         * @param intent The description of the activity to start.
         *
         * @throws ActivityNotFoundException  
         *`
         * @see #startActivity(Intent, Bundle)
         * @see PackageManager#resolveActivity
         */
        public abstract void startActivity(Intent intent);
    


    2. Context 的一个子类叫 ContextWrapper ,ContextWrapper 虽然实现了 startActivity (Intent) 方法,但是很简单,因为需要实例化,所以必须要实现父类中的 abstract 方法。

      @Override
        public void startActivity(Intent intent) {
            mBase.startActivity(intent);
        }


    3. ContextWrapper 有一个子类叫 ContextThemeWrapper ,这个类并没有实现startActivity(Intent) 方法。


    4. Activity 的定义如下:

    public class Activity extends ContextThemeWrapper
            implements LayoutInflater.Factory2,
            Window.Callback, KeyEvent.Callback,
            OnCreateContextMenuListener, ComponentCallbacks2,
            Window.OnWindowDismissedCallback {
    }
    

    其实现了 startActivity(Intent) 方法:

    /**
         * Same as {@link #startActivity(Intent, Bundle)} with no options
         * specified.
         *
         * @param intent The intent to start.
         *
         * @throws android.content.ActivityNotFoundException
         *
         * @see {@link #startActivity(Intent, Bundle)}
         * @see #startActivityForResult
         */
        @Override
        public void startActivity(Intent intent) {
            this.startActivity(intent, null);
        }
    
        @Override
        public void startActivity(Intent intent, @Nullable Bundle options) {
            if (options != null) {
                startActivityForResult(intent, -1, options);
            } else {
                // Note we want to go through this call for compatibility with
                // applications that may have overridden the method.
                startActivityForResult(intent, -1);
            }
        }


    所以结论就是,这两个货是一样的...你在调用的时候,其实最终调用的都是 Activity 类实现的 startActivity 方法。
    之所以会有这样的写法,是因为下面两个在 Activity 中是等价的

    this.startActivity(intent);
    context.startActivity(intent);



    另外 Context 的子类也有其他实现 startActivity 的,比如 ContextImpl.java, 这时候就需要一个 flag :FLAG_ACTIVITY_NEW_TASK ,否则就会抛出异常。

    @Override
        public void startActivity(Intent intent, Bundle options) {
            warnIfCallingFromSystemProcess();
            if ((intent.getFlags()&Intent.FLAG_ACTIVITY_NEW_TASK) == 0) {
                throw new AndroidRuntimeException(
                        "Calling startActivity() from outside of an Activity "
                        + " context requires the FLAG_ACTIVITY_NEW_TASK flag."
                        + " Is this really what you want?");
            }
            mMainThread.getInstrumentation().execStartActivity(
                    getOuterContext(), mMainThread.getApplicationThread(), null,
                    (Activity) null, intent, -1, options);
        }
    


    至于为什么非 Activity 实现的 startActivity 方法需要加这个 flag , 是因为在 Activity 的 startActivity 的实现中,会判断如果没有这个 flag , 就会自动把这个新的 Activity 加到现有的 task 里面。
    而其他的 Context 或者其子类的实现中, 是没有这种判断的, 所以需要使用者指定这个 flag ,以便 AMS 将其加入到其自己的 task 中。






    展开全文
  • StartActivity的2种用法

    万次阅读 2019-03-12 15:50:24
    startActivity有2种用法 1.显示调用。通过指明ComponentName,显示调用Activity,若 Intent intent = newIntent(CustomerService.this, DetailInfo.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ...

    startActivity有2种用法

    1.显示调用。通过指明ComponentName,显示调用Activity,若

    Intent intent = newIntent(CustomerService.this, DetailInfo.class);

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    mContext.startActivity(intent);

    这种用法需要注意的是在AndroidManifest.xml声明一下Activity,

    否则将报throws if therewas no Activity found to run the given Inten

    <activity android:name=“CustomerService”

    android:launchMode=“singleTask”

    android:exported=“true”>

    categoryandroid:name=“android.intent.category.LAUNCHER”/

    2.隐式调用,只需要指明ACTION就可以了,若

    Intent intent = newIntent(“com.android.customerservice.ACTION”);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    mContext.startActivity(intent);

    这种用法在AndroidManifest.xml声明Activity需要在intent-filter中添加该ACTION

    <activity android:name=“CustomerService”

    android:launchMode=“singleTask” android:exported=“true”>

    categoryandroid:name=“android.intent.category.LAUNCHER”/

    actionandroid:name=“com.android.customerservice.ACTION”/

    categoryandroid:name=“android.intent.category.DEFAULT”/

    需要注意的是,自定义的ACTION不能加在android.intent.action.MAIN所在的intent-filter中,必须添加在一个新的intent-filter中,同时必须设置categoryandroid:name="android.intent.category.DEFAULT,

    否则将报throws if therewas no Activity found to run the given Inten

    展开全文
  • Hook startActivity,可以启动一个...1 startActivity方法的两种形式 //第一个是Activity的startActivity方法 startActivity(intent); //第二个是Context的startActivity方法 getApplicationContext().startActivi...
  • 若是想跳回当前页面,则必须再使用一次startActivity( )。 startActivityForResult(Intent intent, int requestCode):可以经当前活动界面认为是一个父窗体,要跳转的界面为子窗体,当子窗体关闭时,父窗体会
  • 1.在Activity中跳转到其他的Activity时,两种使用方法是一样的: this.startActivity(intent); context.startActivity(intent); 2.从非 Activity (例如从其他Context中)启动Activity则必须给in...
  • 在Application中使用startActivity方法

    千次阅读 2018-01-23 14:54:35
    在Application中使用startActivity方法 一不下心在Application中使用startActivity方法,编译器报如下异常(注意Caused by): java.lang.IllegalStateException: Fatal Exception thrown on Scheduler. at io....
  • 如果使用 Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新的task,遇到上面那个异常的,都是因为使用了Context的startActivity方法。解决
  • 使用静态方法startActivity

    千次阅读 2017-08-22 00:45:27
    使用静态方法startActivity使用PhotoView来显示一个图片PhotoActivity.java private static final String IMAGE_PATH = "image_path"; private static final String IMAGE_URI = "image_uri"; public static void...
  • 目录一、前置知识二、activity 的 startActivity(...) 方法三、非 activity 的 startActivity(...) 方法四、最终结论 一、前置知识 日常开发的 MainActivity 的继承关系如下: MainActivity -&g
  • 在非Activity中使用startActivity:Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag 问题描述 在APP 1中启动APP 2中的Activity。 Intent intent = new ...
  • startActivity时报错Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag 问题代码: Intent intent = new Intent(); intent.setClass(mContext, PhotoView....
  • 原文链接:... 1. 首先,Context 类有一个 abstract 方法 /** * Same as {@link #startActivity(Intent, Bundle)} with no options * specified. * ...
  • 在一个Activity环境中用该方法启动一个一个activity不会出任何问题,但在...Calling startActivity() fromoutside of an Activity context requires theFLAG_ACTIVITY_NEW_TASK flag. Context中有一个startActivi
  • 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。 2、startActivityForResult( )  可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activ
  • 对于startActivity使用改进

    千次阅读 2015-08-17 14:05:54
    对于startActivity使用改进 传统方式 一直以来,使用startActivity的方式就是如下:比如从AActivity跳转到BActivity,那么我们是在AActivity中这样去写: Intent intent = new Intent(this, BActivity.class); ...
  • Android Activity startActivity流程简介

    千次阅读 2018-11-14 10:35:30
    Android Activity startActivity流程简介
  • 今天遇到一个问题就是,如何在非activity里面使用startActivity(); 解决办法如下、 需要我们有context intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);
  • Android10.0 startActivity启动过程

    千次阅读 2020-01-05 19:17:06
    原文地址:...基于Android10.0,分析startActivity的启动过程 一、概述 startActivity的整体流程和startService相近,启动后都是通过AMS来完成的。但相比service启动更加复杂,多了任务栈...
  • 今天在编码的时候使用context调用了startactivity方法,报出了以下错误 startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag 原因是:  Context中有一个start...
  • BroadcastReceiver中使用startActivity报错

    千次阅读 2017-07-12 09:55:50
    在写开机启动activity的时候, 在BroadcastReceiver中使用context.startActivity 报错,错误如下: Caused by: Android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity ...
  • 基于Android 6.0的源码剖析, 分析android Activity启动流程,相关源码: frameworks/base/services/core/java/com/android/server/am/ - ActivityManagerService.java - ActivityStackSupervisor.java - ...
  • startActivity用法 startActivity同时用在Button按钮的onClickListener中 在第一个activity(A)文件中: //写在onClickListener方法中 public void onClick(View v){ Intent intent = new Intent(); //...
  • 解决在非Activity中使用startActivity

    千次阅读 2015-11-08 13:17:01
     Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
  •  Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
  • 相信Android开发都遇到...04-09 15:55:08.165: E/AndroidRuntime(3403): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TAS...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 174,500
精华内容 69,800
关键字:

startactivity的用法