小编wwy*_*wyt的帖子

如何杀死进程?

我有两个活动,第一个活动是由Launcher启动的,第二个活动是由第一个活动启动的.当我杀的过程中从第一胡亚蓉内,过程就会被杀死.但是当我从第二个活动中杀死它时,系统会立即启动一个新进程和第一个活动.(进程的PID发生了变化.)我怎样才能干净利落?

我尝试了3种不同的方法来杀死进程:System.exit(0),android.os.Process.killProcess(pid),以及非编程方式来自Eclipse的Devices面板.

以下是我经历过的两个世界上最简单的活动.它们都是各自文件中的外部类.

public class FirstActivity extends Activity  {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ((Button)findViewById(R.id.button)).setOnClickListener(
            new OnClickListener() {
                public void onClick(View v) {
                    startActivity(new Intent(FirstActivity.this, 
                        SecondActivity.class));
        }});
    }
}

public class SecondActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_2);
        ((Button)findViewById(R.id.button)).setOnClickListener( 
            new OnClickListener() {
                public void onClick(View v) {
                    // Method 1
                    int pid = android.os.Process.myPid();
                    android.os.Process.killProcess(pid);
                    // Method 2
                    System.exit(0);
        }});
    }
}
Run Code Online (Sandbox Code Playgroud)

(我知道人们说永远不应该提供一个用户界面退出程序.但这是出于安全原因.用户必须有办法退出程序并关闭文件,这样他的信息就不会泄露.)

android process

3
推荐指数
1
解决办法
1万
查看次数

如何实现一个已安装的应用程序,两个启动器图标?

我想实现在安装应用程序后,Launcher中出现两个图标的目标.单击其中任何一个将启动相应的活动.使用底部的XML和JAVA代码,除了一个案例外,一切似乎都运行良好:

BUG:
步骤1.单击图标1开始活动1
步骤2.单击主页图标以切换到启动器
步骤3.从启动器中,单击图标2
预期结果:活动2开始.
实际结果:活动1恢复.

请注意,在步骤2中,如果单击" 返回"按钮而不是" 主页"按钮以返回到启动器,则步骤3将成功.但如果我使用Home按钮,则会发生错误.有人可以告诉我,我搞砸了什么?非常感谢!

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity 
        android:name=".TestActivity1"
        android:label="Test 1">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity 
        android:name=".TestActivity2"
        android:label="Test 2">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>


// The first activity
public class TestActivity1 extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}


// The second activity, it uses a different content view
public class TestActivity2 extends Activity { …
Run Code Online (Sandbox Code Playgroud)

android

3
推荐指数
1
解决办法
1407
查看次数

ant可以使用Eclipse创建的build.xml吗?

我从Eclipse/Android项目(在Windows下)导出了build.xml文件.然后我使用命令"ant release"来尝试编译项目.但它总是显示错误:

BUILD FAILED
Target "release" does not exist in the project "xxxx".
Run Code Online (Sandbox Code Playgroud)

所以问题是:是否可以使用Eclipse创建的build.xml文件?或者,我该如何解决这个问题?

谢谢.

eclipse ant android

2
推荐指数
1
解决办法
2178
查看次数

如何进行阻止和同步活动?

好吧,请不要问我原因,但我需要启动同步和阻止活动,以便程序流程在完成之前不会继续.我知道如何进行同步对话,但我该如何进行同步活动?

以下是我尝试但失败的两种方法:

// In the 1st activity, start the 2nd activity in the usual way
startActivity(intent);
Looper.loop();        // but pause the program here
// Program continuse running afer Looper.loop() returns
....

// Then, in the second activity's onBackPressed method:
public void onBackPressed() {
    // I was hoping the following quit() will terminate the loop() call in
    // the first activity. But it caused an exception "Main thread not allowed
    // to quit." Understandable.
    new Hanlder().getLooper().quit();
}
Run Code Online (Sandbox Code Playgroud)

我还试图用另一个线程来实现这个目的:

// In the …
Run Code Online (Sandbox Code Playgroud)

android synchronous android-activity

1
推荐指数
1
解决办法
4184
查看次数

如何在Android中获取日期分隔符?

首先,感谢大家,在进入Java/Android/Eclipse开发生活39天后,我几乎可以得到所有问题的答案.但现在我似乎陷入了一个非常意想不到的问题!

我需要将日期格式化为仅年+月和月+日格式.这些不是标准格式,因此我需要构建自己的格式模式并使用DateFormat.format()来获取字符串.我知道我可以使用DateFormat.getDateFormatOrder()来确定年,月,日的顺序.但我还需要知道日期分隔符,例如"/"," - "或".".这是我卡住的地方,我找不到办法去做!

从Eclipse调试器中,我可以看到DateFormat对象中有一个"模式"字段,但它没有公开.SimpleDateFormat.getDateFormatSymbols()方法的名称听起来像我想要的,但事实并非如此.所以....

请帮忙,谢谢.

java android

0
推荐指数
1
解决办法
1953
查看次数

在Android上读取Windows Unicode文件

我刚刚发现Android可以正确读取使用Windows ANSI(或所谓的多字节编码)编码的文件,并将其转换为Java Unicode字符串.但是在读取Unicode文件时失败了.似乎Android正在以逐字节的方式读取它.文件中的Unicode字符串"ABC"将被读入长度为6的Java字符串,字符为0x41,0x00,0x42,0x00,0x43,0x00.

BufferedReader in = new BufferedReader(new FileReader(pathname));
String str = in.readLine();
Run Code Online (Sandbox Code Playgroud)

请问有没有办法在Android上正确读取Windows Unicode文件?谢谢.

将帖子

实验:我在两个Windows文本文件中保存了两个汉字"难哪":

ANSI.txt -- C3 F8 AD FE
UNICODE.txt -- FF FE E3 96 EA 54
Run Code Online (Sandbox Code Playgroud)

然后我将这些文件放到Emulator的SD卡中,我使用以下程序读取它们:(注意,模拟器的语言环境已经设置为zh_TW).

BufferedReader in = new BufferedReader(new FileReader("/sdcard/ANSI.txt"));
String szLine = in.readLine();
int n = szLine.length(), j, i;
in.close();
for (i = 0; i < n; i++) 
    j = szLine.charAt(i);
Run Code Online (Sandbox Code Playgroud)

这是我在模拟器上看到的:

ANSI.txt -- FFFD FFFD FFFD
UNICODE.txt -- FFFD FFFD FFFD FFFD 0084
Run Code Online (Sandbox Code Playgroud)

显然Android(或Java)无法正确解码中文字符.那么,我该怎么做?先感谢您.

unicode android

0
推荐指数
1
解决办法
5448
查看次数

标签 统计

android ×6

android-activity ×1

ant ×1

eclipse ×1

java ×1

process ×1

synchronous ×1

unicode ×1