Articles of android activity

Android应用程序生命周期澄清

任何人都可以确认以下关于Android应用程序生命周期? 1)当应用程序在前台时,内存将包含Application对象的实例,所有活动的实例(未被杀死)以及从其中一个根引用的所有对象引用(尚未被垃圾回收) 2)当应用程序进入后台时,在某些时候Android框架可以:a)杀死给定应用程序目的的整个过程,这将完全从内存中擦除所有对象b)仅杀死(所以基本上没有其他对象引用将被删除)活动(通过完成它们并且实质上是任何片段)保存它们的状态并创建活动堆栈并留下任何其他东西(应用程序对象,任何其他静态对象,可以从任何根访问的引用)。 我最感兴趣的是2b,但我会对所有这些要点进行确认,因为我试图从头到尾抓住整个概念。

从不扩展Activity的类的startService

我创建了一个扩展IntentService的类,我想从一个不是Activity的类启动服务,因此,我无法访问Context对象。 我在文档或网络上找不到这样的例子。 可能吗 ?

Activity.finishAffinity()vs Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK

在Android中,如果要清除当前的Activity堆栈并启动新的Activity (例如,退出应用程序并在Activity启动日志),似乎有两种方法。 如果您的目标API级别高于16,那么一个优势是否有任何优势? 1)完成亲和力 从Activity调用finishAffinity() 。 Activity.finishAffinity 2)意图标志 Intent intent = new Intent(this, LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); finish(); finishAffinity()方法适用于> = API 16。 Intent标志方法适用于> = API 11。 需要明确的是,为了清除当前的Activity堆栈,两种方法似乎也同样有效。 我的问题是,人们经历过的问题是否有问题,因此,有没有理由选择其中一个?

使用Rxjava Android从Activity更新片段

我有一个简单的用例,其中: Activity1创建一个fragment1 创建后的fragment1通知活动它是否已创建并更新其activity1视图。 获取通知更新fragment1视图后的activity1。 我正在使用rxandroid,sublibrary rxlifecycle组件和android,但我还在学习阶段,stackoverflow上甚rx-lifecycle没有rx-lifecycle标签,所以我仍然在努力理解这个库的流程.. 编辑 我不喜欢使用EventBus,就像每个人大喊大叫做某事一样,所以Rxjava Observable方法会很有用

从带有结果的对话框或活动返回

我想知道我是否可以冻结当前的Activity,而我等待另一个活动或对话(任何可以)完成。 我知道我可以为结果启动一个活动,并在那里处理它们,但是startActivityForResult()之后的代码仍然会被执行 这是我想做的事情: PopupDialog dialog = new PopupDialog(this,android.R.style.Theme_Black_NoTitleBar); dialog.show(); // wait here, and continue the code after the dialog has finishes int result = getResultFromDialogSomehow(); if (result == 1){ //do something }else{ //do something else } 我知道这听起来很奇怪,但是如果有人能告诉我如何实现这样的function,我真的很感激。

无法启动活动ComponentInfo {…}:java.lang.NullPointerException

当我刚刚开始我的第一个Android应用程序时,我已经获得了我的第一个问题。 下面的代码非常简单,唯一的目标是从MainActivity.java导航到IMC.java但是,我一直在寻找一个解决方案,在很多教程上我真的不知道我在做什么错误… package com.example.firstapp; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.Button; import android.view.View; import android.view.View.OnClickListener; public class MainActivity extends Activity { Button IMC; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); IMC = (Button) findViewById(R.id.buttonIMC); IMC.setOnClickListener(IMCListener); } // Listener du bouton IMC private OnClickListener IMCListener = new OnClickListener() { @Override public void onClick(View v) […]

Android:如何在后台启动Activity

通常我用这段代码开始一个活动: Intent i = new Intent(context, MyActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); 但是如何开始活动以便留在后台?

动态创建活动

我想动态创建一个活动。 就像是: Activity a = new Activity(); 可能吗 ? 我需要特别许可吗? 或者它根本不可能? 我得到的错误:我没有得到任何exception,但程序在我尝试使用此指令时停止。

如何通过点击按钮完成多项活动?

我正在实现在web服务上的android应用程序。 我正在创建登录Activity A然后主页Activity B ,依此类推。 假设有A,B,C,D和E等活动。 我正在Activity E创建一个主页按钮,通过单击Activity E, D and C应该完成,主页Activity B应该恢复。 我该如何实现呢? A活动中的A> B> C> D> E>后退按钮> B.

显示返回Android堆栈

为了更好地理解Android的行为,我想了解更多有关后端堆栈概念的信息。 有没有办法列出所有活动,因为它们是在后台堆栈中订购的。 这还应包括所有其他正在运行的任务。