Articles of android activity

ActivityRecord的活动空闲超时

所以我有一个奇怪的问题,我不完全知道我应该提供的所有信息,但我会尽我所能 – 只要让我知道,如果我需要添加更多的信息。 我有一个问题,当我完成我的Activity并返回到以前的Activity (或启动一个新的Intent – 问题似乎集中在完成Activity )的UI性能急剧下降大约六七秒,然后恢复正常。 从LogCat ,此警告显示一致: 07-11 22:09:42.594: W/ActivityManager(292): Launch timeout has expired, giving up wake lock! 07-11 22:09:42.601: W/ActivityManager(292): Activity idle timeout for ActivityRecord{42bf6e00 com.kcoppock.sudokubeta/com.kcoppock.sudoku.SudokuBoardActivity} 一旦活动超时,UI性能恢复正常。 在此之前,这是非常缓慢的。 我没有代码,我知道这可能会阻止主线程,我甚至已经注销了我的整个onPause()方法,看看它是否有任何区别,而事实并非如此。 Activity不会产生任何后台线程,不会执行任何networking活动,只访问SharedPreferences 。 之前我能find的问题是关于HistoryRecord空闲超时,而不是ActivityRecord 。 任何想法会导致这个? 或者我怎么能确定什么是阻塞UI线程,如果这是发生了什么? 编辑 :好的,只是试图注释掉除super.onCreate()和setContentView()之外的所有东西 – 问题仍然存在。 除了这个之外,其他任何活动都不会发生这种情况,但这并不存在。 :/

在android中使用onDestroy()

如果Java提供垃圾收集,那么在Activity LIfecycle中onDestroy()需要什么?

切换片段 – Google Map Fragment V2 – 活动已被破坏错误

我有一个地图活动(SherlockFragmentActivity)加载在一个地图片段,有2个button,并切换显示2个不同的片段(GoogleMapFragment&ScaleImageViewFragment) 当我点击展商地图button时,它会replace这个片段,但是当我点击后,我得到一个“java.lang.IllegalStateException:Activity has been destroyed”错误 ERROR/AndroidRuntime(5768): FATAL EXCEPTION: main java.lang.IllegalStateException: Activity has been destroyed at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1342) at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595) at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574) at com.takeit2eleven.towniemeeting.android.fragments.GoogleMapFragment.onCreateView(GoogleMapFragment.java:42) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) 这里是我的MapsFragment.java文件: […]

什么是从onActivityResult参数的意图

这里是我从first activity中调用的second Activity first activity代码: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT){ startActivityForResult(new Intent("chap.two.Chapter2Activity2"),request_Code); } return false; } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == request_Code) { if (resultCode == RESULT_OK) Toast.makeText(this,data.getData().toString(),Toast.LENGTH_SHORT).show(); } } 这里是chap.two.Chapter2Activity2的代码。 chap.two.Chapter2Activity2 : Button n = (Button) findViewById(R.id.btn_OK); n.setOnClickListener(new View.OnClickListener() […]

ACRAexception只能使用低16位的requestCode

我的应用程序使用ACRA进行错误报告,我从设备上得到了一些错误报告:对于requestCode只能使用较低的16位。Google在使用startActivityForResult时显示了这个错误,但是我search了我的代码几次,我不会在任何地方打电话。 我很困惑,想知道这是如何影响用户(有趣的是,崩溃报告testing版并没有显示任何错误)。 其他人遇到这个? java.lang.RuntimeException: Unable to resume activity {com.myapp/com.myapp.MyActivity}: java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2120) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:957) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:130) at android.app.ActivityThread.main(ActivityThread.java:3683) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode at android.support.v4.app.g.startActivityForResult(SourceFile:690) […]

在Android中预装Web页面(使用WebView?)

我想在Android中预加载一个网页。 该网页包含文字和graphics元素。 该网页将在未来尚未创build的活动中显示。 据我了解,一个WebView例如必须绑定到一个活动,因此不可能使用WebView来完成这个任务。 任何人有任何build议,不涉及parsing的HTML页面,并下载所有元素“手动”?

Android的 – 如何将数据从活动传递给片段?

我需要将数据从活动传递到片段。 我知道我可以使用捆绑,但是一旦我传递了数据,我不能发送数据,而无需再次调用和创build片段。 在我的活动中,有些事情可能会改变,我需要通知我的片段这些更改,而不重新创build片段。

为什么Activity中的onCreate()被保护?

为什么Activity中的onCreate()被保护? 或者我应该问:为什么它工作? 受保护的方法只能在类本身内部或其后代中调用。 所以Android系统不能像“act.onCreate()”那样调用它。 那么…怎么叫呢? 顺便说一句,为什么onClickListener中的onClick()是公共的? 有什么不同?

在片段中调用setHasOptionsMenu(true)会导致在Activity中多次调用onCreateOptionsMenu

我有一个简单的Activity ,其中包含一个ViewPager 。 我试图添加一些菜单项从我的Fragment之一菜单,但是我收到了一些奇怪的行为。 调用: setHasOptionsMenu(true); 从我的片段导致封闭的Activity的onCreateOptionsMenu()方法每次我在ViewPager更改片段时被ViewPager 。 这是正常的吗?

为什么没有setDisplayHomeAsUpEnabled()的向上button?

根据Google的文档 ,需要使用getActionBar().setDisplayHomeAsUpEnabled(true)来显示向上button。 我在Eclipse中使用向导创build了一个裸骨活动,并指定了其父活动。 我在自动生成的代码中找不到任何getActionBar().setDisplayHomeAsUpEnabled(true) ,但是当此活动启动时,向上button就会出现,并且按预期工作。 任何人都可以点亮这个? public class FooActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_foo); //more code… } @Override public boolean onCreateOptionsMenu(Menu menu) { //more code… } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the […]