Android应用程序强制关闭home按钮等事件
我的应用程序播放mp3,但当我按下home(主页)按钮或从横向模式切换到纵向模式或从纵向模式切换到横向模式时,应用程序强制关闭。我使用Froyo在真实设备上运行我的应用程序 我的问题是:Android应用程序强制关闭home按钮等事件,android,android-theme,android-2.2-froyo,forceclose,Android,Android Theme,Android 2.2 Froyo,Forceclose,我的应用程序播放mp3,但当我按下home(主页)按钮或从横向模式切换到纵向模式或从纵向模式切换到横向模式时,应用程序强制关闭。我使用Froyo在真实设备上运行我的应用程序 我的问题是: 为什么会发生这种情况 如何追溯强制关闭的原因 我对Android和Java都是新手 import android.media.AudioManager; import android.media.AudioTrack; import android.media.MediaPlayer
- 为什么会发生这种情况
- 如何追溯强制关闭的原因
import android.media.AudioManager;
import android.media.AudioTrack;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
public class AudioPlayManager extends Activity
implements OnCompletionListener
{
private File fileName;
private volatile boolean playing;
protected MediaPlayer mp1;
public AudioPlayManager() {
super();
setPlaying(false);
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp1 = MediaPlayer.create(this, R.raw.telek_jobban_lezart);
mp1.setOnCompletionListener(this);
mp1.start();
}
public void setFileName(File fileName) {
this.fileName = fileName;
}
public File getFileName() {
return fileName;
}
public void setPlaying(boolean playing) {
this.playing = playing;
}
public boolean isPlaying() {
return playing;
}
protected void onStop() {
try{
mp1.stop();
mp1.release();
}
catch(Exception e){
//e.printStackTrace();
}
}
@Override
public void onCompletion(MediaPlayer arg0) {
// TODO Auto-generated method stub
mp1.start();
}
}
我的舱单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.audioplaya2"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.audioplaya2.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
更新:解决方案 我在安卓2.2上运行了这个应用程序,显然它不是为安卓2.2构建的 该问题存在于设备上,但不存在于模拟器上。模拟器运行安卓4.2,设备运行安卓2.2。创建项目时,我保留了默认SDK设置: 最低要求SDK:API 8 目标SDK:API 17 使用API 17编译 主题:全息灯与黑暗行动条 全息主题需要API 11。直到我将所有API版本设置为8,我才得到警告
这对我来说是个惊喜。关于所需的最低SDK的信息说:选择应用程序支持的最低版本的Android。显然,这不是所需SDK的最小值的真正定义…覆盖暂停或停止,并尝试在应用程序关闭前停止媒体播放器,可能类似的情况会导致失败, 方向改变误差
将有关媒体播放器内容的onCreate代码放在onPause(override)方法中,这可能会有所帮助。按照以下步骤解决问题
- 更新你的应用程序
- 清除gmail存储数据
- 清除应用缓存和数据
- 重置智能手机出厂设置
- 重置应用程序首选项
我希望您能解决您的问题您是否有权访问Eclipse之类的模拟器-您将能够获得错误类型和发生位置的日志。请阅读有关Android活动生命周期的信息。您需要编写onPause()和onResume()。对于特定的问题,请编辑您的问题以包括来自logcat的堆栈跟踪。您可以通过检查logcat来回溯力关闭。它将告诉您发生了什么运行时异常,以及在哪一行。如果这还不够,请添加一些调试语句和/或使用调试器逐步完成代码。我看不出当我更改方向时onPause为什么会运行。。。无论如何,我已经用与onStop相同的代码覆盖了onPause,但没有区别。。。我会试试LogCat。。。