怎么结束一个service里启动的activity?

just4rmb 2012-08-26 09:27:41
在这个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,为什么?
...全文
268 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hvk687 2012-08-27
  • 打赏
  • 举报
回复
结束一个Activity的建议方法是,直接发一个intent过去,收到后自己杀死自己
oyq_yangy 2012-08-27
  • 打赏
  • 举报
回复
finish竟然结束不了?
hvk687 2012-08-27
  • 打赏
  • 举报
回复
ToConfirmActivity.this.finish();
ToConfirmActivity.this.onStop();
ToConfirmActivity.this.onDestroy();

还有这样的用法?
csdn_2013 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]


Java code


ToConfirmActivity.this.finish();
ToConfirmActivity.this.onStop();
ToConfirmActivity.this.onDestroy();
Intent t = new Intent(ToConfirmActivity.this, MainS……
[/Quote]


+1 顺便截取日志分析一下。日志有时候是最好的指导老师~
AMinfo 2012-08-26
  • 打赏
  • 举报
回复


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);



改为:

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);

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧