栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

安卓开发Activity学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

安卓开发Activity学习

Activity学习 生命周期 onCreated()

第一次被创建时调用,初始化操作如加载布局绑定事件。

onStart()

活动由不可见变为可见时调用。

onResume()

活动准备好和用户交互时调用,一般此时活动处于任务栈栈顶。

onPause()

在系统准备启动或者恢复另一个活动时调用,通常在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键性数据。这里的方法一定要运行速度很快不然会影响栈顶的活动调用。

onStop()

在活动变成完全不可用时调用,界面被其他界面完全覆盖时调用,如果是提示框对话框这种不完全覆盖的只会调用前面的onPause().

onRestart()

活动由停止状态变为启动状态时调用。

onDestory()

在活动被销毁前调用,在此方法执行后活动被销毁。

除onRestart()外其他的两两配对。

启动模式(附onNewIntent()的调用) 在AndroidMainifest的Activity配置进行设置
 
onNewIntent() 

在onResart()前调用,setIntent(intent),可刷新intent的值。创建新的活动时候onNewIntent()不会被调用,活动被复用的时候onNewIntent()会被调用。

Stander

默认的启动模式,每次都回创建新的活动放置到栈顶。
onNewIntent()无论何时都不会被调用。

SingleTop

只要活动在栈顶就会直接启动,此时onNewIntent()会被调用。如果不在栈顶就会创建新的活动,此时onNewIntent()就不会被调用。

SingleTask

只要活动在栈中存在,就会把该活动栈在活动以上的所有栈出栈,然后启动并调用该活动,此时onNewIntent()也会被调用。如果不存在活动那个的话就会创建新的栈和活动,可指定栈此时onNewIntent()就不会被调用。

SingleInstance

创建新的返回栈将活动放在新的返回栈中。便于解决不同应用程序共享该活动实例的情况。创建的时候不会调用onNewIntent()。

Intent启动器 显式

推荐在对应的Activity中创建该活动的显式启动,这样减少程序见的耦合,也方便控制参数的定制获取。

public static void StartActivity(Context context, String data1){
        Intent intents = new Intent(context,FirstActivity.class);
        intents.putExtra("data1",data1);
        context.startActivity(intents);
    }
隐式

隐式启动的话有3个过滤器,action、category、data。
Action、Category:

Intent intent = new Intent("android.intent.action.SHOW_APP_INFO");
                    intent.addCategory("android.intent.category.DiaLog");
startActivity(intent);

            
                

                

                
            
        

String url = "router://book/login";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PackageManager packageManager = getPackageManager();
List activities = packageManager.queryIntentActivities(intent, 0);
if (activities != null) {
	startActivity(intent);
}

            
                
                
                
                
            
        

附 Activity可设定为Dialog格式:


自定义Activity父类

父类中创建了清除所有Activity的方法>>>结合点击事件等使用可实现一键退出程序的功能。

public class baseActivity extends AppCompatActivity {
    public static List Activity_All = new ArrayList();
    public static final String TAG = "baseActivity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Activity_All.add(this);
        Log.d(TAG,this.getClass().getSimpleName());
    }
    protected static void CancelAllActivity(){
        for (Activity activity:Activity_All
             ) {
            if (!activity.isFinishing())
                activity.finish();
        }
        Activity_All.clear();
    }
}

标题栏 自定义:

首先清除系统自带的标题栏:
Theme中