zoukankan      html  css  js  c++  java
  • activity启动模式之singleTask

    activity启动模式之singleTask

    一、简介

    如果另外一个应用调用了C2,C2在栈底,如果这个程序里面再嗲用C1,C3,C2,那么这个C2就是调用onNewIntant的,C1和C3都被销毁了;

    另一个程序>c2>c1>c3>c2,实际只剩:另一个程序>c2。

    二、代码实例

    效果图:

    上面就是调用了onNewIntent方法的情况

    代码:

    activity.C1

     1 package activity;
     2 
     3 
     4 
     5 
     6 import com.example.activityLaunchSingleTask.R;
     7 
     8 import android.app.Activity;
     9 import android.content.Intent;
    10 import android.os.Bundle;
    11 import android.view.View;
    12 import android.view.View.OnClickListener;
    13 import android.widget.Button;
    14 
    15 
    16 
    17 public class C1 extends Activity implements OnClickListener{
    18     private Button btn_c1;//创建一个button对象
    19     private Button btn_c2;//创建一个button对象
    20     private Button btn_c3;//创建一个button对象
    21      protected void onCreate(Bundle savedInstanceState) {
    22             super.onCreate(savedInstanceState);//父类操作
    23             setContentView(R.layout.activity_main);//引入名为activity_main的界面
    24             setTitle("我是C1");
    25             btn_c1=(Button) findViewById(R.id.btn_c1);//找id为btn_openActivity的button
    26             btn_c2=(Button) findViewById(R.id.btn_c2);//找id为btn_openActivity的button
    27             btn_c3=(Button) findViewById(R.id.btn_c3);//找id为btn_openActivity的button
    28             btn_c1.setOnClickListener(this);
    29             btn_c2.setOnClickListener(this);
    30             btn_c3.setOnClickListener(this);
    31         }
    32     @Override
    33     public void onClick(View v) {
    34         // TODO Auto-generated method stub
    35         switch (v.getId()) {
    36         case R.id.btn_c1:
    37             Intent intent=new Intent();
    38             intent.setClass(C1.this, C1.class);
    39             startActivity(intent);
    40             break;
    41         case R.id.btn_c2:
    42             Intent intent2=new Intent();
    43             intent2.setClass(C1.this, C2.class);
    44             startActivity(intent2);
    45             break;
    46         case R.id.btn_c3:
    47             Intent intent3=new Intent();
    48             intent3.setClass(C1.this, C3.class);
    49             startActivity(intent3);
    50             break;
    51         default:
    52             break;
    53         }
    54     }
    55 }

    activity.C2

     1 package activity;
     2 
     3 
     4 
     5 
     6 import com.example.activityLaunchSingleTask.R;
     7 
     8 import android.app.Activity;
     9 import android.content.Intent;
    10 import android.os.Bundle;
    11 import android.view.View;
    12 import android.view.View.OnClickListener;
    13 import android.widget.Button;
    14 import android.widget.Toast;
    15 
    16 
    17 
    18 public class C2 extends Activity implements OnClickListener{
    19     private Button btn_c1;//创建一个button对象
    20     private Button btn_c2;//创建一个button对象
    21     private Button btn_c3;//创建一个button对象
    22      protected void onCreate(Bundle savedInstanceState) {
    23             super.onCreate(savedInstanceState);//父类操作
    24             setContentView(R.layout.activity_main);//引入名为activity_main的界面
    25             setTitle("我是C2");
    26             btn_c1=(Button) findViewById(R.id.btn_c1);//找id为btn_openActivity的button
    27             btn_c2=(Button) findViewById(R.id.btn_c2);//找id为btn_openActivity的button
    28             btn_c3=(Button) findViewById(R.id.btn_c3);//找id为btn_openActivity的button
    29             btn_c1.setOnClickListener(this);
    30             btn_c2.setOnClickListener(this);
    31             btn_c3.setOnClickListener(this);
    32         }
    33     @Override
    34     public void onClick(View v) {
    35         // TODO Auto-generated method stub
    36         switch (v.getId()) {
    37         case R.id.btn_c1:
    38             Intent intent=new Intent();
    39             intent.setClass(C2.this, C1.class);
    40             startActivity(intent);
    41             break;
    42         case R.id.btn_c2:
    43             Intent intent2=new Intent();
    44             intent2.setClass(C2.this, C2.class);
    45             startActivity(intent2);
    46             break;
    47         case R.id.btn_c3:
    48             Intent intent3=new Intent();
    49             intent3.setClass(C2.this, C3.class);
    50             startActivity(intent3);
    51             break;
    52         default:
    53             break;
    54         }
    55     }
    56     
    57     @Override
    58     protected void onNewIntent(Intent intent) {
    59         // TODO Auto-generated method stub
    60         super.onNewIntent(intent);
    61         Toast.makeText(this, "onNewIntent", Toast.LENGTH_SHORT).show();
    62     }
    63 }

    activity.C3

     1 package activity;
     2 
     3 
     4 
     5 
     6 import com.example.activityLaunchSingleTask.R;
     7 
     8 import android.app.Activity;
     9 import android.content.Intent;
    10 import android.os.Bundle;
    11 import android.view.View;
    12 import android.view.View.OnClickListener;
    13 import android.widget.Button;
    14 
    15 
    16 
    17 public class C3 extends Activity implements OnClickListener{
    18     private Button btn_c1;//创建一个button对象
    19     private Button btn_c2;//创建一个button对象
    20     private Button btn_c3;//创建一个button对象
    21      protected void onCreate(Bundle savedInstanceState) {
    22             super.onCreate(savedInstanceState);//父类操作
    23             setContentView(R.layout.activity_main);//引入名为activity_main的界面
    24             setTitle("我是C3");
    25             btn_c1=(Button) findViewById(R.id.btn_c1);//找id为btn_openActivity的button
    26             btn_c2=(Button) findViewById(R.id.btn_c2);//找id为btn_openActivity的button
    27             btn_c3=(Button) findViewById(R.id.btn_c3);//找id为btn_openActivity的button
    28             btn_c1.setOnClickListener(this);
    29             btn_c2.setOnClickListener(this);
    30             btn_c3.setOnClickListener(this);
    31         }
    32     @Override
    33     public void onClick(View v) {
    34         // TODO Auto-generated method stub
    35         switch (v.getId()) {
    36         case R.id.btn_c1:
    37             Intent intent=new Intent();
    38             intent.setClass(C3.this, C1.class);
    39             startActivity(intent);
    40             break;
    41         case R.id.btn_c2:
    42             Intent intent2=new Intent();
    43             intent2.setClass(C3.this, C2.class);
    44             startActivity(intent2);
    45             break;
    46         case R.id.btn_c3:
    47             Intent intent3=new Intent();
    48             intent3.setClass(C3.this, C3.class);
    49             startActivity(intent3);
    50             break;
    51         default:
    52             break;
    53         }
    54     }
    55 }

    /activityLaunchSingleTask/AndroidManifest.xml

     1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     2     package="com.example.activityLaunchSingleTask"
     3     android:versionCode="1"
     4     android:versionName="1.0" >
     5 
     6     <uses-sdk
     7         android:minSdkVersion="8"
     8         android:targetSdkVersion="19" />
     9 
    10     <application
    11         android:allowBackup="true"
    12         android:icon="@drawable/ic_launcher"
    13         android:label="@string/app_name"
    14         android:theme="@style/AppTheme" >
    15         <activity
    16             android:name="activity.C1"
    17             android:label="@string/app_name" >
    18             <intent-filter>
    19                 <action android:name="android.intent.action.MAIN" />
    20 
    21                 <category android:name="android.intent.category.LAUNCHER" />
    22             </intent-filter>
    23         </activity>
    24         <activity android:name="activity.C2" android:launchMode="singleTask">
    25             <intent-filter>
    26                 <action android:name="com.example.activityLaunchSingleTask" />
    27                 <category android:name="android.intent.category.DEFAULT" />
    28             </intent-filter>
    29         </activity>
    30         <activity android:name="activity.C3"></activity>
    31     </application>
    32 
    33 </manifest>

    /activityLaunchSingleTask/res/layout/activity_main.xml

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <Button
     8         android:id="@+id/btn_c1"
     9         android:layout_width="match_parent"
    10         android:layout_height="50dp"
    11         android:layout_weight="0.00"
    12         android:text="@string/btn_c1" />
    13 
    14     <Button
    15         android:id="@+id/btn_c2"
    16         android:layout_width="match_parent"
    17         android:layout_height="wrap_content"
    18         android:text="@string/btn_c2" />
    19 
    20     <Button
    21         android:id="@+id/btn_c3"
    22         android:layout_width="match_parent"
    23         android:layout_height="wrap_content"
    24         android:text="@string/btn_c3" />
    25 
    26 </LinearLayout>
  • 相关阅读:
    031:verbatim 标签
    030:spaceless和autoescape 标签
    WinForm webbrowser控件的使用
    c# WebBrowser开发参考资料--杂七杂八
    C# Winform WebBrowser控件
    使用webBrowser进行C#和JS通讯
    webBrowser 应用编程函数总结
    C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)
    利用WebBrowser控件实现百度自动搜索
    c#winform使用WebBrowser 大全
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7271576.html
Copyright © 2011-2022 走看看