Android如何在没有意图或背景的情况下开始活动

时间:2017-04-26 14:09:13

标签: android android-intent

假设我有两个活动A和B活动A,其中包含一个按钮,当我无意地按下按钮时,我想启动活动B.

5 个答案:

答案 0 :(得分:4)

根据官方文件:

intent是要执行的操作的抽象描述。它可以与listen_address一起用于发布startActivityActivity以将其发送给任何感兴趣的broadcastIntent组件,BroadcastReceiverstartService(Intent)与后台服务沟通。

bindService(Intent, ServiceConnection, int)提供了一种工具,用于在不同应用程序中的代码之间执行延迟运行时绑定。它最重要的用途是发起活动,它可以被认为是活动之间的粘合剂。它基本上是一个被动数据结构,包含要执行的动作的抽象描述。

因此,您必须使用它来打开没有例外或变通方法的活动,如果这样做,则忽略整个系统架构。

答案 1 :(得分:4)

如果使用Intent 的原因是您不希望用户重新输入之前的活动

使用

后,您可以使用finish()完成该活动意图
if(currentUser == null){
    startActivity(new Intent(MainActivity.this,StartActivity.class));
    finish();
}

因此用户将无法再次回来

  

如果您想在活动结束时执行一些代码

你可以使用onDestroy()覆盖方法,有时如果活动被android本身杀死也可以调用它,这样你就可以添加

isFinishing()功能

内部onDestroy()方法检查应用程序是否通过调用finish()返回true或其他任何返回false的内容关闭,然后您可以轻松指定代码每种情况。

@Override
protected void onDestroy() {
    super.onDestroy();
    if(isFinishing()){
        // Activity is being destroyed by the function `finish()`
        // What to do...
    }else{
        // Activity is being destroyed anonymously without `finish()`
        // What to do...
    }
}

答案 2 :(得分:3)

如果没有意图,就无法从另一个人那里开始活动。

答案 3 :(得分:2)

将您的活动放入片段中,然后从按钮开始播放片段。

答案 4 :(得分:1)

这些是启动任何活动的可能方法

<强>第一

startActivity(new Intent(Activity_A.this, Activity_B.class));

<强>第二

Intent intent = new Intent(Activity_A.this, Activity_B.class);
startActivity(intent);

<强>第三

Intent intent = new Intent(Activity_A.this, Activity_B.class);
startActivityForResult(intent,code);
相关问题