2つの終了方法

1588 ワード

方法1:
ブロードキャストの送信を終了し、1つのBaseActivityでブロードキャストを傍受し、finish自身、残りのactivityベースこのactivity
 
方法2:プロセスを検索し、killの(rootを必要としますか?)
private void exit()
    {
        String packageName = "com.huawei.softclient.mtvclient";
        String processId = "";
        try
        {
            Runtime r = Runtime.getRuntime();
            Process p = r.exec("ps");
            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String inline;
            while ((inline = br.readLine()) != null)
            {
                if (inline.endsWith(packageName))
                {
                    break;
                }
            }
            br.close();
            StringTokenizer processInfoTokenizer = new StringTokenizer(inline);
            int count = 0;
            while (processInfoTokenizer.hasMoreTokens())
            {
                count++;
                processId = processInfoTokenizer.nextToken();
                if (count == 2)
                {
                    break;
                }
            }
            Log.d(TAG,"processId:"+processId);
            r.exec("kill -15 " + processId);
        }
        catch (IOException ex)
        {
            Log.d(TAG,
                "Kill process failed",
                ex);
        }
    }