Articles of android activity

当活动被破坏时,活动背叛的不当行为

我有两个活动; 让我们说A和B.在activity A有一个广播接收器注册了侦听将完成活动A的特定事件。我在onCreate()注册广播接收器,并在activity A onDestroy()中销毁它。 为简单起见, activity B有一个名为“销毁活动A”的button 。 当用户点击button ,应销毁activity A 通常所有这些都运行顺利,没有任何问题,但问题出现在以下场景中: 1)假设我在activity B ,我按Home键将应用程序移动到后台然后如果我使用其他资源繁重的应用程序,Android系统将杀死我的应用程序以释放内存。 然后,如果我从最近的任务中打开我的应用程序,将恢复activity B ,并且将调用onCreate() , onResume()等方法。 现在我按下button来销毁activity A ,但活动A已被销毁,因此activity A的onCreate() , onResume()等方法将不会被调用,除非我按下back button进入activity A 因此, broadcast receiver未注册以监听事件。 2)当用户在设备的设置中从Developer选项中选择“Do not keep activities”时,会出现同样的问题。 我一直在寻找解决这个问题很长一段时间,但我无法find合适的答案。 处理此方案的最佳方法是什么? 这是Android的错误吗? 这个问题应该有一些解决方案。 请帮帮我。

为什么可以将一个布尔数组写入一个parcel而不是一个布尔值?

在Parcel的文档中,它声明了一种方法 public final void writeBooleanArray (boolean[] val) 但是没有writeBoolean(boolean val)方法writeBoolean(boolean val) 还存在: public final void writeLong (long val) public final void writeLongArray (long[] val) 因此,类似的模式可用于其他原始types。 有人可以解释为什么会这样吗?

如何将布局视图与活动相关联

在我的主要观点中,我有: public class PlayersActivity extends Activity { ViewFlipper flipper; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.playercontainer); flipper = (ViewFlipper) findViewById(R.id.flipper); } } 有了这个观点: 它正确地显示了第一个视图,但是我希望它连接到java类,所以我创建了一个FirstActivity类,我可以在第一个视图中控制所有组件,但是如何将first.xml布局与FirstActivity java类相连?

软键盘隐藏动作栏

我有一个简单的活动,文本视图后跟两个编辑文本。 当我开始输入时,软键盘会向上推动布局并隐藏操作栏,我将无法选择/复制/粘贴文本。 我的活动如下: 当我开始输入时,操作栏会被隐藏,就像这样 – 更重要的是,请注意,即使文本突出显示,也会丢失正常的复制粘贴栏: 我该怎么做才能确保操作栏不隐藏? 我已经尝试了一些来自SO的其他技巧(例如使用滚动视图),但没有一个工作。 该应用程序是使用带有抽屉活动的Android Studio 1.4.1向导创建的。 在我的活动清单中,我使用的是adjustPan。 我不想使用adjustResize。 android:windowSoftInputMode=”stateAlwaysHidden|adjustPan” 我的活动在这里:

什么时候实际使用了savedInstanceState包?

有没有人知道在活动中何时使用savedInstanceState包的详尽列表? 我知道它在设备方向改变时使用。 但是,当用户强制从Android设置关闭应用程序时似乎没有使用它,但这可能是由于我的代码中的某些内容。 还有哪些其他案例? 要清楚,通过“used”我的意思是当调用onCreate()时,savedInstanceState包不是null并且包含我上次调用onSaveInstanceState()时传入的数据。

Android:如何在任何事物(任何活动)之上免费绘制

如何在所有其他活动的基础上绘制视图,无论它们显示什么,不使用透明活动或使用其触摸事件。 它喜欢在屏幕上显示所有其他应用程序顶部的自定义图标,当您触摸它时会做出反应,但您仍然可以触摸屏幕上的其他视图。 示例:Facebook聊天头显示屏幕上的可拖动和可点击图标,无论您是在主屏幕还是应用程序菜单或任何应用程序,无论您在做什么。 您仍然可以单独单击聊天头图标和背景应用程序元素 该怎么做?

如何更改android Activity标签

我创建了一个Activity并在Manifest文件中声明。 但是我想将相同的Activity重新用于其他目的。 我需要动态更改标签。 提前致谢

屏幕旋转后不会调用onSaveInstanceState

我知道有很多关于在NavInstanceState上的问题,但是我无法find问题的答案。 我有一个扩展AppCompatActivity的活动; 此活动使用3个片段,它有一个variables’int currentStep’来跟踪正在显示的片段。 在onSavedInstanceState方法中,我将currentStepvariables存储在bundle中,然后在onCreate方法中将其恢复。 public class MainActivity extends AppCompatActivity { private final String CURRENT_STEP_TAG = “current_step”; private int currentStep; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pedido); if(savedInstanceState == null) { loadFirstFragment(); } else { currentStep = savedInstanceState.getInt(CURRENT_STEP_TAG); if(currentStep == 2){ //Do some stuff… } } } @Override public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) […]

如何检测我的任何活动是否最前面并且对用户可见?

我希望在我的任何活动可见时启动一个意图,否则我会将其作为通知提出,并由用户触发。 要做出决定,我需要知道我的任何活动是否最重要,我该怎么做?

防止活动堆栈被恢复?

当应用程序的进程被终止时,将保存其活动堆栈。 然后,当重新启动应用程序时,我的所有活动都会恢复并运行为空指针。 我宁愿让我的应用程序从基本活动开始,而不是尝试重新创建活动堆栈,而不是修改每个活动以适应此事件。 这可能吗? 我知道Intent.FLAG_ACTIVITY_CLEAR_TOP,但据我所知,只会在重新创建后杀死活动。 编辑:是clearTaskOnLaunch我想要什么? 我已将其添加到我的默认活动中,但看不到任何效果。 但即使我只是最小化应用程序,这也会扼杀我的活动,不是吗? 如果整个过程重启,我宁愿只清除堆栈。 编辑2:不,这不是我想要的 – 一位Android工程师对如何使用ClearTaskOnLaunch的一些问题作出了彻底的回应: http ://groups.google.com/group/android-developers/browse_thread/thread/da024bcaf4e1960f/ab1e2b35c360cb65 ?PLI = 1