在我的程序当中所出现的现象问题是
当我的程序在从电通过wifi上传文件到android手机程序时,每传一个文件会弹出一个Activity来,这个Activity是透明的,在onCreate 的时候弹出一个对话框来。传完一个后又关掉一个Activity. 用于显示上传文件时的进度,当上传多个文件的时候, 这个Activity是一次又一次的创建一次又一次的关掉。对话框也是一次一次的弹出来,不过在传多个文件的时候再按home键,这时候回到主界面,这时候会段开跟电脑的连接,不过等2到3秒钟后,刚才的那个程序会又回自动的进行打开。我想问的是。为什么,按home键后,什么都不操作,为什么还会自动的又返回到刚才的那个程序当中。
我的程序有关的这段代码大概是这样的。 MianActivity界面时。会连接电脑,这进候可以点开始上传,当接收文件时,是一个子线程在接收文件,接收文件的线程当中 启动上传文件的的Activity界面的这个的 Intent progressIntent; progressIntent = new Intent(m_ConManager, ProgressActivity.class);
progressIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
| Intent.FLAG_ACTIVITY_NO_ANIMATION
| Intent.FLAG_ACTIVITY_NO_HISTORY
| Intent.FLAG_ACTIVITY_NO_USER_ACTION);
progressIntent.putExtra(ProgressActivity.FILE_NAME, new String(
m_FileInfo.strFileName));
progressIntent.putExtra(ProgressActivity.FILE_SIZE, nTotalSize);
if (!MoveFileActivity.m_isMoving) {
m_ConManager.doActivity(progressIntent);
m_bProgressShown = true;
}
else {
m_bProgressShown = false;
}
而这个m_ConManager 对象 是一个服务,这个服务中doActivity函数是这样的 */
protected void doActivity(final Intent in) {
Runnable doActivityRunnable = new Runnable() {
public void run() {
startActivity(in);
}
}; handler.post(doActivityRunnable);
}
而在这个ProgressActivity 创建的时候在onCreate里面是这个创建Dialog的。
这个Dialog是自己写的继承于AlertDialog 的。其实里面就是加了一个进度条,控制里面的进度,还有何时关闭,还是在ProgressActivity.中有一个HandlerManager 中来控制的, 是在传文件的时候发送Message来做到的。
不知道我样描术。会不会有人明白。理解。 希望能找到为什么会重新自动跳回程序当中。万分万分的感谢!
当我的程序在从电通过wifi上传文件到android手机程序时,每传一个文件会弹出一个Activity来,这个Activity是透明的,在onCreate 的时候弹出一个对话框来。传完一个后又关掉一个Activity. 用于显示上传文件时的进度,当上传多个文件的时候, 这个Activity是一次又一次的创建一次又一次的关掉。对话框也是一次一次的弹出来,不过在传多个文件的时候再按home键,这时候回到主界面,这时候会段开跟电脑的连接,不过等2到3秒钟后,刚才的那个程序会又回自动的进行打开。我想问的是。为什么,按home键后,什么都不操作,为什么还会自动的又返回到刚才的那个程序当中。
我的程序有关的这段代码大概是这样的。 MianActivity界面时。会连接电脑,这进候可以点开始上传,当接收文件时,是一个子线程在接收文件,接收文件的线程当中 启动上传文件的的Activity界面的这个的 Intent progressIntent; progressIntent = new Intent(m_ConManager, ProgressActivity.class);
progressIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
| Intent.FLAG_ACTIVITY_NO_ANIMATION
| Intent.FLAG_ACTIVITY_NO_HISTORY
| Intent.FLAG_ACTIVITY_NO_USER_ACTION);
progressIntent.putExtra(ProgressActivity.FILE_NAME, new String(
m_FileInfo.strFileName));
progressIntent.putExtra(ProgressActivity.FILE_SIZE, nTotalSize);
if (!MoveFileActivity.m_isMoving) {
m_ConManager.doActivity(progressIntent);
m_bProgressShown = true;
}
else {
m_bProgressShown = false;
}
而这个m_ConManager 对象 是一个服务,这个服务中doActivity函数是这样的 */
protected void doActivity(final Intent in) {
Runnable doActivityRunnable = new Runnable() {
public void run() {
startActivity(in);
}
}; handler.post(doActivityRunnable);
}
而在这个ProgressActivity 创建的时候在onCreate里面是这个创建Dialog的。
这个Dialog是自己写的继承于AlertDialog 的。其实里面就是加了一个进度条,控制里面的进度,还有何时关闭,还是在ProgressActivity.中有一个HandlerManager 中来控制的, 是在传文件的时候发送Message来做到的。
不知道我样描术。会不会有人明白。理解。 希望能找到为什么会重新自动跳回程序当中。万分万分的感谢!
<activity android:name=".MainActivity" android:label="@string/app_name"
android:launchMode="singleTop" android:configChanges="orientation" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
而ProgressActivity是这样的
<activity android:name="jp.co.pfu.android.net.ProgressActivity"
android:theme="@style/Theme.Transparent"
android:configChanges="orientation" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>我觉得是在按下home键后。程序里后台线程并没有停止,当线程掉用到启运Progress时。重新启动一个Task,所以又自动回到了程序。 不知道是 不是这样??有没有方法解决。。