柚子快报app邀请码是多少778899分享:活动启动模式

http://yzkb.51969.com/

启动模式

1.standard

同一个页面可以打开多次

2.singleTop

打开页面直接处于栈顶

3.singleTask

会保证页面只打开一次

4.singleInstance

开启新的栈

获取当前活动技巧,

创建一个基础的类,

package activitytest.example.com.activitytest;

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

/**

* Created by DianDoDo on 2017/9/4.

*/

public class BaseActivity extends AppCompatActivity{

private static final String TAG = "BaseActivity";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Log.d(TAG,getClass().getSimpleName());

}

}

其他的活动类,继承它,就可以在每次打开活动的时候,都能显示活动名称了

package activitytest.example.com.activitytest;

import android.net.Uri;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Toast;

import android.widget.Button; // 引入才可以操作Button

import android.content.Intent;

public class FirstActivity extends BaseActivity {

private static final String TAG = "FirstActivity";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Log.d(TAG,"Task id is" +getTaskId());

setContentView(R.layout.first_layout); // 设置默认布局

Button button1 = (Button) findViewById(R.id.button_1);

button1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

startActivity(intent);

}

});

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

switch (requestCode) {

case 1:

if (resultCode == RESULT_OK) {

String returnedData = data.getStringExtra("data_return");

Log.d("FirstActivity",returnedData);

}

break;

default:

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main,menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.add_item:

Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show();

break;

case R.id.remove_item:

Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show();

break;

default:

break;

}

return true;

}

@Override

protected void onRestart() {

super.onRestart();

Log.d(TAG,"onRestart");

}

}

处理全部关闭

1.创建一个ActivityCollector类

package activitytest.example.com.activitytest;

import android.app.Activity;

import java.util.ArrayList;

import java.util.List;

/**

* Created by DianDoDo on 2017/9/4.

*/

public class ActivityCollector {

public static List activities = new ArrayList<>();

public static void addActivity(Activity activity) {

activities.add(activity);

}

public static void removeActivity (Activity activity) {

activities.remove(activity);

}

public static void finishAll() {

for(Activity activity:activities) {

if (!activity.isFinishing()) {

activity.finish();

}

}

}

}

2.在Base类中管理

package activitytest.example.com.activitytest;

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

/**

* Created by DianDoDo on 2017/9/4.

*/

public class BaseActivity extends AppCompatActivity{

private static final String TAG = "BaseActivity";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Log.d(TAG,getClass().getSimpleName());

ActivityCollector.addActivity(this);

}

@Override

protected void onDestroy() {

super.onDestroy();

ActivityCollector.removeActivity(this);

}

}

3.活动中调用finishAll

package activitytest.example.com.activitytest;

import android.content.Intent;

import android.net.Uri;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

public class ThirdActivity extends BaseActivity {

private static final String TAG = "ThirdActivity";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Log.d(TAG,"Task id is" +getTaskId());

setContentView(R.layout.third_layout);

Button button3 = (Button) findViewById(R.id.button_3);

button3.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

ActivityCollector.finishAll();

}

});

}

}

优化传参处理

SecondActivity 活动增加方法

public static void actionStart(Context context,String data1,String data2) {

Intent intent = new Intent(context,SecondActivity.class);

intent.putExtra("param1",data1);

intent.putExtra("param2",data2);

context.startActivity(intent);

}

活动一中调用,

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Log.d(TAG,"Task id is" +getTaskId());

setContentView(R.layout.first_layout); // 设置默认布局

Button button1 = (Button) findViewById(R.id.button_1);

button1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

// startActivity(intent);

SecondActivity.actionStart(FirstActivity.this,"data1","data2");

}

});

}

这样就可以方便的传参数了。

柚子快报app邀请码是多少778899分享:活动启动模式

http://yzkb.51969.com/

相关文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。