精华内容
下载资源
问答
  • 开发中涉及到种子卡和业务卡之间的切换,遇到界面卡住,activity生命周期销毁并自动重启,Android log并无异常;然而业务卡和业务卡之间切换并不会出现; 二、分析 出现该问题第一时间想到了内部链路太长阻塞超时...

    一、背景

       开发中涉及到种子卡和业务卡之间的切换,遇到界面卡住,activity生命周期销毁并自动重启,Android log并无异常;然而业务卡和业务卡之间切换并不会出现;

     

    二、分析

    • 出现该问题第一时间想到了内部链路太长阻塞超时导致,因为内部涉及到 java ,以及多个so的互相调用;花了很长时间去跟踪日志,无异常;
    • 回归android原本逻辑,activity的生命周期重新调用第一时间是横竖屏切换,会导致,我设置了
      android:screenOrientation="portrait",然而此时我就想起了我之前做物联网的时候遇到的,卡的状态改变的时候也会导致activity重绘,

     

    三、总结

      多做笔记多总结,很多时候我们开发过程中遇到很多问题,此时就需要自己去记录并经常总结得到自己的知识库,而且总结会让你得到新的知识;

    展开全文
  • 几经尝试,发现在eclipse上面可以用的几种方法,在android studio上面行不通。尝试了好多遍,以下方法... 在文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可。...

    几经尝试,发现在eclipse上面可以用的几种方法,在android studio上面行不通。尝试了好多遍,以下方法都来源于eclipse开发

    1、以下方法有可能行不通

    1android:theme="@android:style/Theme.NoTitleBar" 在文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可。

    实现全屏效果: android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 

    实现无标题栏: android:theme="@android:style/Theme.NoTitleBar"


    2
    、在程序中编写代码进行设置,只需在onCreate()方法中加入如下代码即可 

    实现全屏效果: 

    protected void onCreate(BundlesavedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);
    }

    实现无标题栏:

    protected void onCreate(BundlesavedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);
    }

     

    2、下面方法是可行的

    在res/values/styles.xml下面新建一个style

    <style name="NoTitleStyle" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    </style>

    然后在项目的清单文件AndroidManifest.xml中将默认的

    android:theme="@style/AppTheme"改成android:theme="@style/NoTitleStyle"

     

    由于刚刚开始自学android,免得忘了,想写点东西方便以后看,以上方法在android studio行不行都是试出来的,有错误希望指出来,有更简单方法也可以分享一下。


    展开全文
  • Activity设置成窗口的样式实现Dialog或者Popupwindow效果在开发中是很常用的一种方式,在AndroidMenifest.xml中将需要设置的Activity增加android:theme=”@android:style/Theme.Dialog”属性即可。 但是窗口化的...

    将Activity设置成窗口的样式实现Dialog或者Popupwindow效果在开发中是很常用的一种方式,在AndroidMenifest.xml中将需要设置的Activity增加android:theme=”@android:style/Theme.Dialog”属性即可。
    但是窗口化的Activity有个问题就是:点击窗口空白处Activity会finish。如何避免这个问题呢,办法如下:.

    一、如果API Level>=11有两种方式:

    1、
    res\values\styles.xml

    <resources>  
        <style name="Theme.SoundRecorder" parent="@android:style/Theme.Holo.DialogWhenLarge">  
            <item name="android:windowCloseOnTouchOutside">false</item>  
        </style>  
    </resources>  
    

    2、activity代码中设置:

    YourActivity.this.setFinishOnTouchOutside(false);  
    

    二、如果API Level<11

    activity代码中设置:

    @Override  
        public boolean onTouchEvent(MotionEvent event) {  
            if (event.getAction() == MotionEvent.ACTION_DOWN && isOutOfBounds(this, event)) {  
                return true;  
            }  
            return super.onTouchEvent(event);  
        }  
    
        private boolean isOutOfBounds(Activity context, MotionEvent event) {  
            final int x = (int) event.getX();  
            final int y = (int) event.getY();  
            final int slop = ViewConfiguration.get(context).getScaledWindowTouchSlop();  
            final View decorView = context.getWindow().getDecorView();  
            return (x < -slop) || (y < -slop)|| (x > (decorView.getWidth() + slop))|| (y > (decorView.getHeight() + slop));  
        } 
    
    展开全文
  • Android Activity savedInstanceState

    千次阅读 2017-06-01 11:14:54
    Android Activity savedInstanceState

    最近了解了一些关于Android的savedInstanceState相关的知识,在此进行一下总结。


    在Android的Activity控件中的onCreate方法中,我们可以获得的一个参数为savedInstanceState:

        @Override
        protected void onCreate(Bundle savedInstanceState)

    该参数的作用是什么呢?

    这时,我们就得提到构造savedInstanceState的另一个方法:

        @Override
        protected void onSaveInstanceState(Bundle outState)

    该方法的作用为:

    Called to retrieve per-instance state from an activity before being killed so that the state can be restored in onCreate(Bundle) or onRestoreInstanceState(Bundle) (the Bundle populated by this method will be passed to both).

    即:用于保存Activity被杀死前一刻的每个实例的状态,然后当Activity被重启时,传递给onCreate与onRestoreInstanceState方法

    该方法的调用时间为:

    This method is called before an activity may be killed so that when it comes back some time in the future it can restore its state.

    即:当一个Activity可能被杀死时调用。由于是在Activity可能被杀死时调用,但许多情况下调用了onSaveInstanceState方法后Activity并不一定会被杀死,因此其与调用onCreate与onRestoreInstanceState并不是成对的。常见的调用时间有:

    1. 当用户按下HOME键时
    2. 长按HOME键,选择运行其他的程序时
    3. 按下电源按键(关闭屏幕显示)时
    4. 从activity A中启动一个新的activity时
    5. 屏幕方向切换时
    另外,该方法与Activity的生命周期没有关系,并不会依照特定的顺序被调用。但如果被调用时,一定保证会在onStop方法前被调用。
    值得注意的是:
    The default implementation takes care of most of the UI per-instance state for you by calling onSaveInstanceState() on each view in the hierarchy that has an id, and by saving the id of the currently focused view (all of which is restored by the default implementation of onRestoreInstanceState(Bundle)). If you override this method to save additional information not captured by each individual view, you will likely want to call through to the default implementation, otherwise be prepared to save all of the state of each view yourself.

    据博主所了解,onSaveInstanceState默认方法会为我们自动存储当前Activity对应布局中的View以及Fragment相关的状态,如果需要存储某些变量的值则需要我们重写onSaveInstanceState方法自行操作,重写方法时应注意调用父类方法来保存Activitiy中的UI 状态,通过onRestoreInstanceState方法恢复数据同理。

    下面为一个Activity切换屏幕方向恢复数据的例子:

    public class MainActivity extends AppCompatActivity {
    
        private static final String TAG = "MyLog";
    
        private TextView textView;
        private EditText editText;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            if (savedInstanceState == null) { // 初次运行
                textView = (TextView) findViewById(R.id.text_view);
                editText = (EditText) findViewById(R.id.editText);
                textView.setText("before");
            } else { // 恢复数据
                textView = (TextView) findViewById(R.id.text_view);
                textView.setText("after");
            }
        }
    
        @Override
        protected void onSaveInstanceState(Bundle outState) {
            // 保存各种View的状态
            super.onSaveInstanceState(outState);
            Log.d(TAG, "onSaveInstanceState");
        }
    
        @Override
        protected void onRestoreInstanceState(Bundle savedInstanceState) {
            // 恢复各种View的状态
            super.onRestoreInstanceState(savedInstanceState);
            Log.d(TAG, "onRestoreInstanceState");
        }
    }

    Activity的布局xml文件包含了一个TextView与一个EditText。


    首次运行:

    首次运行

    在EditText中输入内容:

    输入内容

    进行屏幕切换:

    屏幕切换

    不调用onRestoreInstanceState的父类方法,其余步骤同上,屏幕切换后:

        @Override
        protected void onRestoreInstanceState(Bundle savedInstanceState) {
            // 恢复各种View的状态
    //        super.onRestoreInstanceState(savedInstanceState);
            Log.d(TAG, "onRestoreInstanceState");
        }

    不使用父类方法,屏幕切换


    可以看到,在没有调用父类方法时,EditText的输入内容变回了原本的Name而非我们输入的input something,由此看来,savedInstanceState确实具有保存Activity中布局的UI状态的功能。

    因此,在我们实现自定义View控件的时候也应该记得实现View的onSaveInstanceState方法,用于存储UI控件的状态(默认实现为什么都不保存)。


    PS:savedInstance虽然默认会保留fragment相关信息,但只是保留了fragment 对象本身而已(不需要我们再次add fragment),但每次初始化图像时均会重新调用onCreateView重新绘制,因此UI上的状态也会丢失(比如EditText输入的内容等),此时我们需要重写fragment的onSaveInstanceState自行保存其中的UI状态,并在onViewStateRestored方法中恢复:

    public class MyFragment extends Fragment {
    
        private static final String VIEWS_TAG = "my_fragment:views";
    
        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
            return inflater.inflate(R.layout.fragment_my, container, false);
        }
    
        @Override
        public void onViewStateRestored(Bundle savedInstanceState) {
            super.onViewStateRestored(savedInstanceState);
            // 恢复UI状态
            if (savedInstanceState != null && getView() != null) {
                SparseArray<Parcelable> sparseArray = savedInstanceState.getSparseParcelableArray(VIEWS_TAG);
                getView().restoreHierarchyState(sparseArray);
            }
        }
    
        @Override
        public void onSaveInstanceState(Bundle outState) {
            super.onSaveInstanceState(outState);
            // 保存UI状态
            SparseArray<Parcelable> sparseArray = new SparseArray<Parcelable>();
            if (getView() != null) {
                getView().saveHierarchyState(sparseArray);
                outState.putSparseParcelableArray(VIEWS_TAG, sparseArray);
            }
        }
    }


    展开全文
  • 在Manifest.xml中设定activity的属性 android:windowSoftInputMode="stateHidden|stateUnchanged" 附相关属性: "stateUnspecified" 软键盘的状态(是否它是隐藏或可见)没有被指定。...
  • 如题,A,B两个activity,点击A中按钮跳转到B中,跳转后如何自动关闭A?请给出个简单的说明或者代码。谢谢!
  • Android Activity

    2018-01-26 18:10:07
    Android Activity】 什么是 Activity? 四大组件之一,通常一个用户交互界面对应一个 activityactivity 是Context 的子类,同时实现了 window.callback和 keyevent.callback, 可以处理与窗体用户交互的事件。...
  • 注意:自己开的线程并不会自动Activity的destroy而关闭,所以必须手动去关闭自己开的线程或者通过boolean的方式让自己开的线程结束运行。自己开的线程有for循环的要更加注意。 废话不说,上例子。 package ...
  • 项目中实现一个通话功能时,需要弹出一个类似Dialog样式的呼叫或被呼叫窗口,这个窗口实际是一个Activity,theme设置为Dialog样式,如下: 但实际运行中,就暴露一个问题,就是这个窗口具备了Dialog的特性,即...
  • Android Activity基础

    2019-10-11 10:36:29
    快速回顾Activity,了解什么是Activity,如何创建,启动,使用和关闭。了解Activity的最基本的生命周期。
  • android activity

    千次阅读 2011-10-31 15:46:08
    详解 AndroidActivity 组件 Activity 的生命周期 和 J2ME 的 MIDlet 一样,在 android 中,Activity 的生命周期交给系统统一管理。与 MIDlet 不同的是安装在 android 中的所有的 Activity 都是平等的。 ...
  • 一、onSaveInstanceState (Bundle outState)保存状态Activity中的onSaveInstanceState()回调方法用于保存临时数据和状态,这个方法会在活动被回收之前调用。@Overrideprotected void onCreate(Bundle ...
  • Android加载H5,实现H5中的音视频自动播放 在Activity中添加代码:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false); ...
  • Activity设置成窗口的样式实现Dialog或者Popupwindow效果在开发中是很常用的一种方式,在AndroidMenifest.xml中将需要设置的Activity增加android:theme="@android:style/Theme.Dialog"属性即可。但是...
  • android对话框自动关闭

    2019-10-12 09:48:14
    记录:对话框弹出自动关闭: public class MainActivity extends AppCompatActivity { private Button dialog1,dialog2; private AlertDialog alert; private Timer timerl; private MyHandler handler; ...
  • Android右滑关闭当前Activity

    千次阅读 2016-12-21 21:50:34
    常常可以看到,很多Android应用都有这么一个功能,就是滑动关闭Activity,比如微信,CSDN移动端,百度贴吧移动端等。我自己也想写个滑动关闭Activity,最近事情没有那么多,我就google了一下,查看了一下实现滑动...
  • Android activity概述

    千次阅读 2013-09-13 09:33:56
    Android activity概述 概述 Activities 是一个程序的组件之一。它的主要功能是提供界面。  一个程序一般由多个Activity组成,各activities之间关系很松散,它们之间没有直接的关联。必须有一个activity被指定为主...
  • 此次学习主要讲解的是Android中的Activity组件。 对于此组件的学习将会从创建、配置、启动等片面的使用方法。 创建、配置、启动Activity1、创建Activity,大致可以分为以下两个步骤:(1)创建一个Activity一般是...
  • Android Activity 详述

    2015-11-26 18:21:16
    activity类处于android.app包中,继承关系: extends ContextThemeWrapper implements LayoutInflater.Factory2 Window.Callback KeyEvent.Callback View.OnCreateContextMenuListener ComponentCallbacks2 java....
  • activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "...
  • Android Activity生命周期详解

    万次阅读 多人点赞 2018-07-07 10:49:08
    Activity作为Android的四大组件之一,非常的重要,也是最常用的四大组件,使用Activity必须要在AndroidManifest中进行注册,那么作为Android的基础,Activity的生命周期你是否完全掌握了呢?下面就让我们来一起回顾...
  • Android滑动关闭Activity

    千次阅读 2018-06-15 13:01:20
    #定制Android滑动关闭Activity 现在手机屏幕越来越大,而页面的退出按键通常设置在屏幕左上角,这就导致了当单手操作时用户体验及其不好。虽然也能通过实体按键返回和现在流行的全面屏手势解决,但是感觉会很...
  • 自定义webView与js交互跳转到另一个activity自动关闭,并且没走destroy()方法?求大神解释?
  • Android Activity介绍

    2018-01-09 10:51:38
    Activity生命周期 状态说明 状态 说明 活动状态 当Activity在用户界面中处于最上层,完全能被用户看到,能够与用户进行交互,则这个Activity处于活动状态。 暂停状态 当...
  • Activity销毁后软键盘不自动关闭

    千次阅读 2017-06-13 14:31:57
    这个键盘自动关闭与否,关键是在于再次出现的activity的软键盘模式: android:windowSoftInputMode="stateUnspecified|adjustPan"在这个状态下是可以自动关闭的 如A界面进入B界面,输入内容后销毁B界面,再次进入A...
  • 本博客 demo 见:demo。平常用手机的时候经常...可是当 activity A 的广告结束后自动跳转 activity B 的时候 app C 总是会自动跳出来切换到前台展示,挡住了我们正在使用的应用,体验非常不好。这是 androi...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,128
精华内容 20,051
关键字:

安卓activity自动关闭