Articles of android activity

尽可能防止活动被破坏

我有一个应用程序,一个单一的活动应用程序与片段。 这个应用程序的通常使用情况是,你启动它,并把电话远离,然后,你回到手机,并插入一些数据…这是一个日志应用程序,你正在做的事情,并插入你的结果进入应用程序… 我有这个问题,我的活动会不时被破坏,并重新创build一个空的捆绑…(大多数情况下,情况并非如此,但偶尔会发生这种情况…)。 我的应用程序有时启动服务,即使这种服务在这种情况下被杀害… 这意味着,系统已经杀了我的应用程序,是吗? 我怎样才能避免这一点? 我需要保留用户数据和当前的最高碎片…并将它们保存到捆绑包中,只要其状态和数据得到保存,一切都会正常工作。 顺便说一下,我的活动总是最活跃的,只有屏幕closures经常…我只是想保持我的活动尽可能长时间,直到用户离开后退button…或保存状态可靠 重要的提示 onSaveInstance不总是工作(这不是生命周期的一部分,因此不保证被调用)…它只能在大多数时间…我需要一种方式,总是工作…如果android杀死我的应用程序。 ..

android中的嵌套的内部Activity类

是否声明一个扩展另一个Activity类中的Activity的类? 如果是这样,我将如何在清单中注册该类? 另外,这是可以合理完成的东西,还是一个坏主意? 我正在想着类似的东西 class ListClass extends ListActivity{ … ArrayList items; class ItemClass extends Activity{ … Item item; @Override onCreate(){ Integer pos = getIntent().getExtras().getInt("pos"); item = items.get(pos); } } @Override onItemClick(int position){ startActivity(new Intent(this, ItemClass.class).putExtra("pos", position)); } } 注意语法显然不是100%正确的,大多是伪代码。

有没有办法使用ActivityInstrumentationTestCase2添加附加到活动

我正在使用ActivityInstrumentationTestCase2进行unit testing。 是否有一种方法来添加额外的活动,所以当活动到这样的一条线 Bundle extras = getIntent().getExtras(); 它会返回额外的?

为什么单身人士class活下去?

我有一个Singleton类,与我的应用程序的一个活动一起使用。 当我退出活动 – 这使我回到菜单活动 – 然后重新打开活动,我发现,当我尝试访问单身,它仍然是相同的。 当然,它应该已经与活动一起销毁? 我在这里看到这个问题: 活着的单身人士,当活动结束但不能完全遵循他们的意思。 当我按下设备上的返回button(或使用“活动”本身内的完成)时,活动是否保持活动状态以供将来使用? 如果是这样,那就解释一下。

覆盖Android后退button

关于为什么我试图这样做的一些信息:我正在使用ActivityGroups从tabHost活动打开一个活动,并有新的活动留在选项卡下。 我有这个部分。 但是在这个新的活动中,如果我使用后退button,它会使我从标签页活动中跳出来,所以我必须点击几下才能返回到原来的位置。 有没有办法设置后退button去特定的活动,而不是杀死当前的活动窗口?

完成广播接收器的活动

我有一个活动,当手机铃声响起(电话应用程序)时,我显示为无模式。 当发生以下任一事件时,我想完成活动。 第一个是如果我触摸活动外的任何地方(这不是问题),第二个是如果振铃停止。 我正在侦听广播接收器中的IDLE_STATE,但是我不确定如何在看到它时调用活动的结束。 接收者没有被活动注册,而是被Manifest.xml注册

如何使用FLAG_REORDER_TO_FRONT和FLAG_CLEAR_TOP启动Activity

我的任务A,B,C,D有四项活动。 按顺序启动活动A-> B-> C-> D。 这里, 我想回到D的活动A并重新开始活动。 所以我使用了意向标志 i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 活动B,C,D实例在stmt 1之后不再需要。 我去为国旗做到这一点, Intent.FLAG_ACTIVITY_CLEAR_TOP 在我的APPP使用上面的1和2我试图实现像 – 返回并恢复活力A,并从堆栈中移除其他活动 所以我试过了。 i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //vise versa 使用上面的代码这两个标志都在这里使用这个引用 ( Android:意图的setFlags和addFlags之间有什么区别 ) 我不能够完成这些任务(恢复活动A并清除其他)。 实际的呼叫scheme是 when i use the CLEAR flag the call is like D->oncreate(A) and clear BCD when i use the REORDER flag the call is like D->onrestart(A). 那么我怎么能结合这个标志来获得组合的行动恢复A和清除其他或有任何其他方式来做到这一点。 这是我的清单 <manifest […]

如何从Activity调用另一个Activity中的方法

正在开发一个我有的Android应用程序 我有两个classA和Bclass。 在A类中,我尝试了下面的代码段, 如何从Activity调用另一个Activity中的方法。 public class FirstActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); } public void method() { // some code } } public class SecondActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); FirstActivity fact = new FIrstActivity(); fact.method(); } }

以编程方式禁用和启用Android中活动的方向更改

我有一个应用程序,使一些后台人员。 当后台工作正在运行一个进度的时候,如果设备在这段时间内被旋转了,那么活动就会“重置”,我想避免这种情况。 出于这个原因,我决定在这个过程中禁用定位。 我已经看到这个问题differends线程,但没有一个有效的解决scheme,至less在我的情况。 发布的解决scheme是关于修复活动方向,但是如果您使用以下操作,则必须处理REVERSE方向未返回的事实: getResources().getConfiguration().orientation 上面的函数返回SCREEN_ORIENTATION_PORTRAIT对于PORTRAIT和REVERSE_PORTRAIT情况(至less在我的testing中)。 所以最后我用旋转值来处理,所以我的代码“禁用旋转”是: int rotation = getWindowManager().getDefaultDisplay().getRotation(); switch(rotation) { case Surface.ROTATION_180: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); break; case Surface.ROTATION_270: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); break; case Surface.ROTATION_0: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); break; case Surface.ROTATION_90: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); break; } 再次允许方向: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); 这在Android 4.1.2的设备中是完美的,但是在Android 4.2.1的设备中,它并不像预期的那样工作。 我想在活动周期中pipe理轮换应该是一个常见问题,但是我一直没有find合适的解决scheme。 可能是我正在寻找错误的方向,所以任何帮助真的很受欢迎。 在此先感谢,伊万。

从后台线程完成android活动是否安全?

在Android中,从后台线程调用Activity.finish()是否安全,还是只能从主线程调用? 这个文档没有提到关于这个方法的线程安全性。