Articles of android activity

如何使用接口在两个活动之间进行通信

我试图在两个活动Act1 and Act2之间建立监听器接口。 Act1将启动Act2 。 如果Act2发生了某些事件,它会通知Act1 。 问题是我正在使用Intent开始新的活动,那么Act1如何将自己指定为Act2接口的监听器? Act1.java public class Act1 extends ActionBarActivity implements ActionBar.OnNavigationListener { ActionBar actionbar; Intent pizzaIntent; boolean visibleFirstTime = true; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.menutab); //set actionbar here } @Override public boolean onNavigationItemSelected(int arg0, long arg1)// item pos, // itemid { switch (arg0) { case 0: if(this.visibleFirstTime == […]

Android完成Activity并启动另一个

我很好奇一件事。 我怎样才能完成当前的活动并开始另一个活动。 示例: MainActivity –(starts)–> LoginActivity –(if success, starts)–> SyncActivity –(if success start)–> MainActivity (with updated data). 所以我希望SyncActivity在成功同步后启动MainActivity ,如果我按下后退按钮不返回SyncActivity或在SynActivity之前打开的任何其他活动。 我试过这段代码: Intent intent = new Intent(Synchronization.this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(intent); this.finish(); 但它不能正常工作。 任何想法如何使事情正常工作?

Android中的每个活动都是一个流程,或者一个应用程序是一个流程

在此页面中, http://androidapps.org.ua/androidintro_ipc.html ,活动之间的意图切换被描述为进程间通信。 现在我很困惑每个活动是否是android中的单独进程,或者应用程序内的所有活动都是一个进程。 我使用以下方法检查了我的应用程序中所有活动和服务的进程ID: int id = android.os.Process.myPid(); System.out.println(“Process id of Activity1 :”+id); 但它显示相同的进程ID。 请回复。

如何将字符串从一个活动发送到另一个活动?

所以我在activity2中有一个字符串 String message = String.format( “Current Location \n Longitude: %1$s \n Latitude: %2$s”, lat, lng); 我想将此字符串插入activity1中的文本字段。 我怎样才能做到这一点? 先谢谢你。

按HOME后重新启动应用程序时如何返回最新启动的活动?

熟悉的场景:我有一个Main活动,在按下按钮时启动游戏活动。 如果用户按下HOME,然后再次启动我的应用程序,则应该显示Game活动,这是他在使用该应用程序时最后所做的事情。 然而,相反的是他再次获得Main活动。 我觉得Android正在创建另一个 MainActivity实例并将其添加到该应用程序的堆栈中,而不是只选择顶部的任何内容,因为如果我在重新启动应用程序后按BACK,我会进入Game活动! 并且每次调用Main.onCreate方法,而不是调用GameActivity.onResume。 我的AndroidManifest.xml几乎是“骨头”: 如你所见,没有什么太花哨的。 这就是新活动的推出方式,也非常简单: Intent intent = new Intent(this, GameActivity.class); startActivity(intent); 从理论上讲,这应该在Android中起到“开箱即用”的作用,因为对一个非常相似的问题的回答是: 在Android中维护标准应用程序活动后备堆栈状态(使用singleTask启动模式) ,但事实并非如此。 我一直在阅读和重读有关活动和任务和堆栈的文档,并在SO中浏览所有相关的答案,但我不明白为什么这么简单的设置不能按预期工作。

如何在onStop()中检查屏幕开/关状态?

如此处所述,当屏幕熄灭时,将onStop()当前Activity的onStop() 。 我需要在onStop()我的Activity的onStop()时检查屏幕的开/关状态。 所以我为这些操作注册了一个BroadcastReceiver ( ACTION_SCREEN_ON和ACTION_SCREEN_OFF )以记录当前的开/关状态(它们正常工作,我已经记录了!)。 但当我关闭屏幕并检查onStop的开/关状态时,它表示屏幕已打开。 为什么? 我认为接收器必须在onStop之前收到ACTION_SCREEN_OFF所以这有什么问题?

Android如何修复相机方向

注意相机的视图(不是被捕获的图像)是如何向左翻转(上图), Activity的方向是正确的,但相机视图搞砸了,请帮帮我们:)谢谢。 这是xml文件: 这是java代码: public class CustomCameraActivity extends Activity implements SurfaceHolder.Callback { Camera camera; SurfaceView surfaceView; SurfaceHolder surfaceHolder; boolean previewing = false; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.camera); surfaceView = (SurfaceView)findViewById(R.id.camerapreview); surfaceHolder = surfaceView.getHolder(); surfaceHolder.addCallback(this); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { if(previewing){ camera.stopPreview(); previewing = […]

如何检查我的活动是否是屏幕中正在运行的当前活动

我使用Toast进行通知,但似乎即使它的活动不在当前屏幕中也会出现,并且其他一些活动已经启动。 我想检查这种情况,当活动不是当前活动时,我不会发送Toast通知。 但怎么办?

如何清除启动Activity的Intent?

在开始时,Intent会启动Activity,并且会使用此Intent完成某些操作。 当我更改Activity的方向时,它会再次重新加载,并将Intent传递给Activity。 如何清除Intent以阻止Activity再次使用它? 我已经尝试了setIntent(null) ,但没有结果。

从活动中设置片段的参数

我想将活动中的parameter passing给嵌入到活动中的片段。 片段静态嵌入xml布局中。 我试着像这样调用setArgument(): setContentView(R.layout.detail_activity); DetailFragment detailFragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.detailFragment); detailFragment.setArguments(getIntent().getExtras()); 但是已经太晚了,因为必须在片段创建后立即调用setArguments。 唯一的是我看到getArguments()和更改捆绑。 有更好的方法吗?