在这个service中用这样的方法来启动一个activity,起到一个类似于对话框式的效果:
Intent t = new Intent(MainService.this, ToConfirmActivity.class);
t.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(t);
要启动的activity的代码如下:
package com.example.borec;import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.Instrumentation.ActivityResult;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;public class ToConfirmActivity extends Activity {private Button twiceConfirm = null;
private Button toFinish = null;@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to_confirm);
Button twiceConfirm = (Button) findViewById(R.id.twiceConfirm);
Button toFinish = (Button) findViewById(R.id.toFinish); twiceConfirm.setOnClickListener(new twiceConfirmListener());
toFinish.setOnClickListener(new toFinishListener());
}class twiceConfirmListener implements OnClickListener { public void onClick(View v) {
// TODO Auto-generated method stub
Intent t = new Intent(ToConfirmActivity.this, WebViewActivity.class);
t.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(t);
finish();
}}class toFinishListener implements OnClickListener { public void onClick(View v) {
// TODO Auto-generated method stub
ToConfirmActivity.this.finish();
ToConfirmActivity.this.onStop();
ToConfirmActivity.this.onDestroy();
Intent t = new Intent(ToConfirmActivity.this, MainService.class);
System.out.println("*****");
stopService(t);
Intent tt = new Intent(ToConfirmActivity.this,
GridLayoutActivity.class);
startActivity(tt);
}
}@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_to_confirm, menu);
return true;
}
}现在的问题就是,要按这个结束服务按钮十多次才能完全结束这个activity,为什么?
Intent t = new Intent(MainService.this, ToConfirmActivity.class);
t.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(t);
要启动的activity的代码如下:
package com.example.borec;import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.Instrumentation.ActivityResult;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;public class ToConfirmActivity extends Activity {private Button twiceConfirm = null;
private Button toFinish = null;@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to_confirm);
Button twiceConfirm = (Button) findViewById(R.id.twiceConfirm);
Button toFinish = (Button) findViewById(R.id.toFinish); twiceConfirm.setOnClickListener(new twiceConfirmListener());
toFinish.setOnClickListener(new toFinishListener());
}class twiceConfirmListener implements OnClickListener { public void onClick(View v) {
// TODO Auto-generated method stub
Intent t = new Intent(ToConfirmActivity.this, WebViewActivity.class);
t.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(t);
finish();
}}class toFinishListener implements OnClickListener { public void onClick(View v) {
// TODO Auto-generated method stub
ToConfirmActivity.this.finish();
ToConfirmActivity.this.onStop();
ToConfirmActivity.this.onDestroy();
Intent t = new Intent(ToConfirmActivity.this, MainService.class);
System.out.println("*****");
stopService(t);
Intent tt = new Intent(ToConfirmActivity.this,
GridLayoutActivity.class);
startActivity(tt);
}
}@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_to_confirm, menu);
return true;
}
}现在的问题就是,要按这个结束服务按钮十多次才能完全结束这个activity,为什么?
ToConfirmActivity.this.onStop();
ToConfirmActivity.this.onDestroy();
Intent t = new Intent(ToConfirmActivity.this, MainService.class);
System.out.println("*****");
stopService(t);
Intent tt = new Intent(ToConfirmActivity.this,
GridLayoutActivity.class);
startActivity(tt);改为:Intent t = new Intent(ToConfirmActivity.this, MainService.class);
stopService(t);
Intent tt = new Intent(ToConfirmActivity.this,GridLayoutActivity.class);
startActivity(tt);int nPid = android.os.Process.myPid();
android.os.Process.killProcess(nPid);
finish();
System.exit(0);
ToConfirmActivity.this.onStop();
ToConfirmActivity.this.onDestroy();还有这样的用法?