我正在尝试使用intent切换android中的活动。然而,不管我做什么,这总是崩溃。我在同一个问题上阅读了无数的主题,其中没有一个有帮助。所以我被迫提出自己的问题。
当我运行此功能时,应用程序会在4秒钟后崩溃
这是我的第一项活动(启动):
package com.redflamedeveloper.torch;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
public class Splash extends Activity {
/** Called when the activity is first created. */
MediaPlayer mpSplash;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
mpSplash = MediaPlayer.create(this, R.raw.fire); //Splash Screen sound
mpSplash.start();
Thread logoTimer = new Thread(){ //4 Second Timer
public void run() {
try {
//Waits for 4 seconds
int logoTimer = 0;
while(logoTimer <4000){
sleep(100);
logoTimer = logoTimer + 100;
}
Intent intentMain = new Intent(Splash.this, Main.class);
startActivity(intentMain);
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
finish();
}
}
};
logoTimer.start(); //Starts the thread logoTimer
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mpSplash.release(); //ends sound
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mpSplash.pause(); //pauses sound
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mpSplash.start(); //Resumes sound
}
}
我的第二项活动(主要):
package com.redflamedeveloper.torch;
import android.app.Activity;
import android.hardware.Camera.Parameters;
import android.hardware.Camera;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.os.Handler;
/**
* Created by Sasha on 8/12/13.
*/
public class Main extends Activity implements OnClickListener{
private Camera mCamera;
boolean torch = false;
boolean flash = false;
private Handler mHander = new Handler();
private final Runnable mRunnable = new Runnable() {
public void run() {
while(flash) {
if (torch==false) {
if( mCamera != null ){
Parameters params = mCamera.getParameters();
params.setFlashMode( Parameters.FLASH_MODE_TORCH );
mCamera.setParameters( params );
torch=true;
}
} else {
if( mCamera != null ){
Parameters params = mCamera.getParameters();
params.setFlashMode( Parameters.FLASH_MODE_OFF );
mCamera.setParameters( params );
torch=false;
}
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.main);
Button bTorch = (Button) findViewById(R.id.bTorch);
Button bFlash = (Button) findViewById(R.id.bFlash);
Button bHelp = (Button) findViewById(R.id.bHelp);
Button bMorse = (Button) findViewById(R.id.bMorse);
bTorch.setOnClickListener(this);
bFlash.setOnClickListener(this);
bHelp.setOnClickListener(this);
bMorse.setOnClickListener(this);
}
private void startStrobe() {
mHander.post(mRunnable);
}
public void onClick(View v) {
switch(v.getId()){
case R.id.bTorch:
if (torch==false) {
if( mCamera != null ){
Parameters params = mCamera.getParameters();
params.setFlashMode( Parameters.FLASH_MODE_TORCH );
mCamera.setParameters( params );
torch=true;
}
} else {
if( mCamera != null ){
Parameters params = mCamera.getParameters();
params.setFlashMode( Parameters.FLASH_MODE_OFF );
mCamera.setParameters( params );
torch=false;
}
}
break;
case R.id.bFlash:
flash=!flash;
startStrobe();
break;
case R.id.bHelp:
Parameters params = mCamera.getParameters();
params.setFlashMode( Parameters.FLASH_MODE_TORCH );
mCamera.setParameters( params );
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
params.setFlashMode( Parameters.FLASH_MODE_OFF );
mCamera.setParameters( params );
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
params.setFlashMode( Parameters.FLASH_MODE_TORCH );
mCamera.setParameters( params );
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
params.setFlashMode( Parameters.FLASH_MODE_OFF );
mCamera.setParameters( params );
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
params.setFlashMode( Parameters.FLASH_MODE_TORCH );
mCamera.setParameters( params );
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
params.setFlashMode( Parameters.FLASH_MODE_OFF );
mCamera.setParameters( params );
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
params.setFlashMode( Parameters.FLASH_MODE_TORCH );
mCamera.setParameters( params );
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
params.setFlashMode( Parameters.FLASH_MODE_OFF );
mCamera.setParameters( params );
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
params.setFlashMode( Parameters.FLASH_MODE_OFF );
mCamera.setParameters( params );
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
break;
case R.id.bMorse:
Intent intentMorse = new Intent(Main.this, Morse.class);
Main.this.startActivity(intentMorse);
break;
}
}
}
和我的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.redflamedeveloper.torch"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="13"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.redflamedeveloper.torch.Splash"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Main"
android:label="@string/app_name" >
</activity>
<activity
android:name=".Morse"
android:label="@string/app_name" >
</activity>
</application>
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
</manifest>
最后LogCat:
12-09 23:28:35.682 2110-2110/com.redflamedeveloper.torch W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40c47a68)
12-09 23:28:35.692 637-674/? E/android.os.Debug﹕ !@Dumpstate > dumpstate -k -t -n -z -d -o /data/log/dumpstate_app_error
12-09 23:28:35.692 2110-2110/com.redflamedeveloper.torch E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.app.SuperNotCalledException: Activity {com.redflamedeveloper.torch/com.redflamedeveloper.torch.Main} did not call through to super.onCreate()
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1936)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
at android.app.ActivityThread.access$600(ActivityThread.java:128)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4517)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
at dalvik.system.NativeStart.main(Native Method)
12-09 23:28:35.692 637-647/? W/ActivityManager﹕ Force finishing activity com.redflamedeveloper.torch/.Main
12-09 23:28:35.702 2144-2144/? I/dumpstate﹕ Check if stand-alone
12-09 23:28:35.712 2144-2144/? I/dumpstate﹕ begin
12-09 23:28:36.523 1268-1281/? E/MP-Decision﹕ DOWN Ld:54 Ns:1.100000 Ts:190 rq:0.000000 seq:196.000000
12-09 23:28:37.023 637-25450/? W/SignalStrength﹕ getGsmLevel=4
12-09 23:28:37.023 637-25450/? W/SignalStrength﹕ getLevel=4 (SignalStrength: 14 0 -120 -160 -120 -1 -1 99 2147483647 2147483647 2147483647 2147483647 gsm|lte 0x4)
12-09 23:28:37.023 771-771/? W/SignalStrength﹕ getGsmLevel=4
12-09 23:28:37.023 771-771/? W/SignalStrength﹕ getLevel=4 (SignalStrength: 14 0 -120 -160 -120 -1 -1 99 2147483647 2147483647 2147483647 2147483647 gsm|lte 0x4)
12-09 23:28:37.023 771-771/? W/SignalStrength﹕ getGsmLevel=4
12-09 23:28:37.023 771-771/? W/SignalStrength﹕ getLevel=4 (SignalStrength: 14 0 -120 -160 -120 -1 -1 99 2147483647 2147483647 2147483647 2147483647 gsm|lte 0x4)
12-09 23:28:37.023 771-771/? D/STATUSBAR-NetworkController﹕ onSignalStrengthsChanged signalStrength=SignalStrength: 14 0 -120 -160 -120 -1 -1 99 2147483647 2147483647 2147483647 2147483647 gsm|lte 0x4 level=4
12-09 23:28:37.023 637-884/? W/AlarmManager﹕ FACTORY_ON= 0
12-09 23:28:37.774 1268-1281/? E/MP-Decision﹕ UP Ld:61 Nw:1.990000 Tw:140 rq:2.300000 seq:147.000000
12-09 23:28:38.164 329-329/? E/SMD﹕ DCD ON
12-09 23:28:38.665 336-582/? D/AudioStreamOutALSA﹕ standby
12-09 23:28:38.665 336-582/? D/ALSAModule﹕ s_standby: handle 0x10454c0 h 0x0
12-09 23:28:38.665 336-582/? E/ALSAModule﹕ s_standby handle h 0x10e2180
12-09 23:28:38.865 336-582/? D/alsa_ucm﹕ snd_use_case_set(): uc_mgr 0xfe8968 identifier _verb value Inactive
12-09 23:28:38.865 336-582/? D/alsa_ucm﹕ set_use_case_ident_for_all_devices(): HiFi
12-09 23:28:38.865 336-582/? D/alsa_ucm﹕ Set mixer controls for HiFi enable 0
12-09 23:28:38.865 336-582/? D/alsa_ucm﹕ Set mixer controls for HiFiSpeaker enable 0
12-09 23:28:38.865 336-582/? D/alsa_ucm﹕ snd_use_case_set(): uc_mgr 0xfe8968 identifier _disdev value Main Mic
12-09 23:28:38.865 336-582/? D/alsa_ucm﹕ disdev: device Main Mic not enabled or not active, no need to disable
12-09 23:28:38.865 336-582/? D/alsa_ucm﹕ snd_use_case_set(): uc_mgr 0xfe8968 identifier _disdev value Speaker
12-09 23:28:38.865 336-582/? E/alsa_ucm﹕ Empty list
12-09 23:28:38.865 336-582/? D/alsa_ucm﹕ set current output is none
12-09 23:28:38.865 336-582/? D/alsa_ucm﹕ Set mixer controls for Speaker enable 0
12-09 23:28:39.075 1268-1281/? E/MP-Decision﹕ DOWN Ld:18 Ns:1.100000 Ts:190 rq:0.000000 seq:196.000000
12-09 23:28:40.557 319-542/? D/VoldCmdListener﹕ asec list
12-09 23:28:40.557 319-542/? D/VoldCmdListener﹕ CommandListener::AsecCmd::runCommand -> --
12-09 23:28:40.707 637-698/? D/KeyguardViewMediator﹕ setHidden false
12-09 23:28:40.707 637-698/? D/KeyguardViewMediator﹕ setHidden false
12-09 23:28:40.707 637-698/? D/DEFERED_APP_VISIBILITY﹕ tweaking closing app
12-09 23:28:40.707 637-698/? D/DEFERED_APP_VISIBILITY﹕ tweaking closing app
12-09 23:28:40.717 637-698/? D/KeyguardViewMediator﹕ setHidden false
12-09 23:28:40.737 637-698/? D/KeyguardViewMediator﹕ setHidden false
12-09 23:28:40.747 637-698/? D/KeyguardViewMediator﹕ setHidden false
我在我的智慧结束。非常感谢所有帮助
萨莎
答案 0 :(得分:5)
您需要使用super.onCreate(savedInstanceState);
的{{1}}方法拨打onCreate
答案 1 :(得分:1)
您的第二个活动不会调用super.onCreate(savedInstanceState)。它在logcat
中这么说