栈退出应用程序

来源:互联网 发布:韶关市网络问政平台 编辑:程序博客网 时间:2024/06/04 23:26

1Activity的启动模式

<1>Standard(默认-标准启动模式)

自己可以启动自己(在同一个栈里面,会创建一个新的Activity,可以创建nActivity

<2>SingleTop(顶单例模式)

自己不能启动自己,别人可以跳自己(在栈顶只不允许有相同的Activity,在栈里可以有多个不同的Activity

<3>SingleTask(内单列模式)

自己不能启动自己,自己可以跳别人,别人可以跳自己(如果要启动的Activity存在,则干掉要启动的Activity上面的所有的Activity

<4>SingleInstance(全局单列模式)

跳别人就是换位置,返回就是干掉(一层一层)

配置:

 

2.退出应用程序

栈退出:Application:多个组件之间数据共享(全局)

实现代码如下:

public class MyApplication extends Application{    private List<Activity> activities=new ArrayList<>();    public void add(Activity activity){        activities.add(activity);    }    public void exit(){        for (Activity activity : activities) {            activity.finish();        }    }}


public class BActivity extends AppCompatActivity {    private MyApplication myApplication;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_b);        myApplication = (MyApplication) getApplication();        myApplication.add(this);    }    public void exit(View view){        myApplication.exit();    }    public void jumpA(View view){        Intent intent=new Intent(this,MainActivity.class);        startActivity(intent);    }}
public class MainActivity extends AppCompatActivity {    private MyApplication myApplication;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        myApplication = (MyApplication) getApplication();        myApplication.add(this);    }    public void exit(View view){        myApplication.exit();    }    public void jumpB(View view){        Intent intent=new Intent(this,BActivity.class);        startActivity(intent);    }}
 <application        android:name="com.zking.application.MyApplication"        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:roundIcon="@mipmap/ic_launcher_round"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity android:name=".BActivity"></activity>    </application>






 
原创粉丝点击