无法关闭android eclipse上的所有活动
假设我有四个类。每个类都有一个按钮,可以从一个页面切换到另一个页面,很好。但是现在我试图通过点击最后一页的按钮来关闭所有活动。我也尝试过,但它只是关闭最后一页。如何实现这个概念无法关闭android eclipse上的所有活动,android,eclipse,Android,Eclipse,假设我有四个类。每个类都有一个按钮,可以从一个页面切换到另一个页面,很好。但是现在我试图通过点击最后一页的按钮来关闭所有活动。我也尝试过,但它只是关闭最后一页。如何实现这个概念 Intent intent=new Intent(Class3.this,Class1.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); 请找到我的代码以供参考 Intent intent=new Intent
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
请找到我的代码以供参考
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Xit\u demoActivity.java
public class Xit_demoActivity extends Activity {
/** Called when the activity is first created. */
Button btn1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1 = (Button)findViewById(R.id.button_1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class1.class);
startActivity(myIntent);
}
});
public class Class1 extends Activity
{
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);
btn1 = (Button)findViewById(R.id.button_2);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class2.class);
startActivity(myIntent);
}
});
public class Class2 extends Activity
{
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
btn1 = (Button)findViewById(R.id.button_3);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class3.class);
startActivity(myIntent);
}
});
public class Class3 extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main3);
Button next = (Button) findViewById(R.id.button_4);
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
});
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Class1.java
public class Xit_demoActivity extends Activity {
/** Called when the activity is first created. */
Button btn1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1 = (Button)findViewById(R.id.button_1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class1.class);
startActivity(myIntent);
}
});
public class Class1 extends Activity
{
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);
btn1 = (Button)findViewById(R.id.button_2);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class2.class);
startActivity(myIntent);
}
});
public class Class2 extends Activity
{
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
btn1 = (Button)findViewById(R.id.button_3);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class3.class);
startActivity(myIntent);
}
});
public class Class3 extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main3);
Button next = (Button) findViewById(R.id.button_4);
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
});
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Class2.java
public class Xit_demoActivity extends Activity {
/** Called when the activity is first created. */
Button btn1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1 = (Button)findViewById(R.id.button_1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class1.class);
startActivity(myIntent);
}
});
public class Class1 extends Activity
{
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);
btn1 = (Button)findViewById(R.id.button_2);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class2.class);
startActivity(myIntent);
}
});
public class Class2 extends Activity
{
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
btn1 = (Button)findViewById(R.id.button_3);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class3.class);
startActivity(myIntent);
}
});
public class Class3 extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main3);
Button next = (Button) findViewById(R.id.button_4);
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
});
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Class3.java
public class Xit_demoActivity extends Activity {
/** Called when the activity is first created. */
Button btn1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1 = (Button)findViewById(R.id.button_1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class1.class);
startActivity(myIntent);
}
});
public class Class1 extends Activity
{
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);
btn1 = (Button)findViewById(R.id.button_2);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class2.class);
startActivity(myIntent);
}
});
public class Class2 extends Activity
{
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
btn1 = (Button)findViewById(R.id.button_3);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), Class3.class);
startActivity(myIntent);
}
});
public class Class3 extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main3);
Button next = (Button) findViewById(R.id.button_4);
next.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
});
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.and.roidu.xit"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".Xit_demoActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity><activity android:name=".Class1"></activity>
<activity
android:name=".Class1"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN1" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity><activity android:name=".Class2"></activity>
<activity
android:name=".Class2"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN2" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity><activity android:name=".Class3"></activity>
<activity
android:name=".Class3"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN3" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
谢谢你抽出时间 试试这个。考虑你的<代码> Caluth.java 是你的最后的<代码>活动>代码>,在<代码>按钮<代码> <代码>下<代码>使用下面的代码-< /p>
Intent intent = new Intent(currentActivity.this, XitActivity.class); // instead of XitActivity use your first activity
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
并且,在您的Xit\u demoActivity
的onCreate()
中使用下面的代码-
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
希望这将有助于您退出所有活动。只需尝试一下。考虑你的<代码> Caluth.java 是你的最后的<代码>活动>代码>,在<代码>按钮<代码> <代码>下<代码>使用下面的代码-< /p>
Intent intent = new Intent(currentActivity.this, XitActivity.class); // instead of XitActivity use your first activity
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
并且,在您的Xit\u demoActivity
的onCreate()
中使用下面的代码-
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
希望这能帮助您退出所有活动。您不应该这样做。如果要打开主屏幕或上一个应用程序屏幕。你只要打个电话就可以了
moveTaskToBack(boolean bool);
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
它会将你的应用程序发送到后台。或者,如果您不想在堆栈中包含class1 2和Class3,可以在活动清单decl中使用excludeFromRecent标志
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
对于同一个问题,此线程获得了数千个视图。看一看,了解一下。
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
你不应该这样做。如果要打开主屏幕或上一个应用程序屏幕。你只要打个电话就可以了
moveTaskToBack(boolean bool);
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
它会将你的应用程序发送到后台。或者,如果您不想在堆栈中包含class1 2和Class3,可以在活动清单decl中使用excludeFromRecent标志
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
对于同一个问题,此线程获得了数千个视图。看一看,了解一下。
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
在第3类中单击按钮时,写下以下内容:
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
在第3类中单击按钮时,写下以下内容:
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
我坚持创建一个带有BroadCastReceiver的BaseActivity,它将在您想要完成所有活动并使用此BaseActivity扩展所有活动类时发出通知
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
public static final String ACTION_FINISH = "ACTION_FINISH";
public class BaseActivity extends Activity {
public void onCreate(Bundle bundle, int resourceId) {
super.onCreate(bundle);
registerReceiver(finishActivitiesReceiver,
new IntentFilter(ACTION_FINISH));
}
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(finishActivitiesReceiver);
}
BroadcastReceiver finishActivitiesReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
};
}
然后,当您希望使用关闭所有活动时,您可以只发送广播
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
sendBroadcast(new Intent(BaseActivity.ACTION_FINISH));
我坚持创建一个带有BroadCastReceiver的BaseActivity,它将在您想要完成所有活动并使用此BaseActivity扩展所有活动类时发出通知
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
public static final String ACTION_FINISH = "ACTION_FINISH";
public class BaseActivity extends Activity {
public void onCreate(Bundle bundle, int resourceId) {
super.onCreate(bundle);
registerReceiver(finishActivitiesReceiver,
new IntentFilter(ACTION_FINISH));
}
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(finishActivitiesReceiver);
}
BroadcastReceiver finishActivitiesReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
};
}
然后,当您希望使用关闭所有活动时,您可以只发送广播
Intent intent=new Intent(Class3.this,Class1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
sendBroadcast(new Intent(BaseActivity.ACTION_FINISH));
回答得好-比我快几秒钟!请注意,使用
getApplicationContext()
几乎总是错误的-这里有一个SO问题讨论了@GrahamSmith检查我的更新答案。现在可以了吗?使用currentActivity.this
而不是getApplicationContext()
@Spk如果按照你的答案,它只是调用第一个class.java,但是我需要在点击该按钮时关闭整个应用程序,如何做呢?@Androidapp_devlpr检查我更新的答案并粘贴此代码if(getIntent().getBooleanExtra(“退出”),false)){finish();}
在您的Xit_demoActivity
java的onCreate()
方法中。回答得好-比我快几秒钟!请注意,使用getApplicationContext()
几乎总是错误的-这里有一个SO问题讨论了@GrahamSmith检查我的更新答案。现在可以了吗?使用currentActivity.this
而不是getApplicationContext()
@Spk如果按照你的答案,它只是调用第一个class.java,但是我需要在点击该按钮时关闭整个应用程序,如何做呢?@Androidapp_devlpr检查我更新的答案并粘贴此代码if(getIntent().getBooleanExtra(“退出”),false)){finish();}
在您的Xit_demoActivity
java的onCreate()
方法中。当您在类3的最后一个onClick方法中调用finish()方法时,仅关闭当前活动。若要关闭所有其他活动,必须对这些特定活动调用finish()方法。当在类3的最后一个onClick方法中调用finish()方法时,则仅关闭当前活动。要关闭所有其他活动,必须对这些特定活动调用finish()方法。moveTaskToBack(布尔布尔布尔)我想code>会在后台运行应用程序吗?就像按home键一样:)moveTaskToBack(布尔布尔布尔)我想code>会在后台运行应用程序吗?就像按home键一样:)