java - 服务在线程中运行

标签 java android multithreading service

我有一个服务类,它正在使用相机拍照并将其写入 SD 卡。现在我希望每 10 秒调用一次该服务,以便我可以每 10 秒从相机拍摄图像。但是我遇到了异常。这是我的主要 Activity 代码:

public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(com.example.picturesenderbluetooth.R.layout.capture_and_send);

    Button cap = (Button)findViewById(R.id.button1);
    cap.setOnClickListener(new OnClickListener() {

        @Override 
        public void onClick(View v) {
            // TODO Auto-generated method stub
            new Thread(new Task()).start();
        }
    });

    }

public void turnbluetoothon()
{
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    
    if (mBluetoothAdapter.disable()) {
        mBluetoothAdapter.enable(); 
    } 
}


class Task implements Runnable { 

    @Override 
    public void run() { 
        while(true) { 
            try { 
                Log.w("Rami code yaar","Rami mei phir chal gaya... hahaha");
                startService(new Intent(getBaseContext(), Backgroundservice.class));
                Thread.sleep(10000); 
                stopService(new Intent(getBaseContext(), Backgroundservice.class));

            } catch (InterruptedException e) { 
                e.printStackTrace(); 
            } 
        } 
  } 

 }
}

logcat 显示:

12-20 17:11:25.854: E/AndroidRuntime(9859): FATAL EXCEPTION: main
12-20 17:11:25.854: E/AndroidRuntime(9859): java.lang.RuntimeException: Unable to start service com.example.Picture_Sender_Bluetooth.Backgroundservice@419b5920 with Intent { cmp=com.example.picturesenderbluetooth/com.example.Picture_Sender_Bluetooth.Backgroundservice }: java.lang.RuntimeException: Fail to connect to camera service
12-20 17:11:25.854: E/AndroidRuntime(9859):     at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2829)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at android.app.ActivityThread.access$1900(ActivityThread.java:156)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1441)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at android.os.Looper.loop(Looper.java:153)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at android.app.ActivityThread.main(ActivityThread.java:5336)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at java.lang.reflect.Method.invokeNative(Native Method)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at java.lang.reflect.Method.invoke(Method.java:511)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at dalvik.system.NativeStart.main(Native Method)
12-20 17:11:25.854: E/AndroidRuntime(9859): Caused by: java.lang.RuntimeException: Fail to connect to camera service
12-20 17:11:25.854: E/AndroidRuntime(9859):     at android.hardware.Camera.native_setup(Native Method)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at android.hardware.Camera.<init>(Camera.java:445)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at android.hardware.Camera.open(Camera.java:421)
12-20 17:11:25.854: E/AndroidRuntime(9859):     at com.example.Picture_Sender_Bluetooth.Backgroundservice.onStart(Backgroundservice.java:37)

是什么导致应用程序崩溃?我该如何解决它?

最佳答案

我发现问题出在哪里了。在我做的服务中。我没有释放我的相机。所以我调用了该函数。

cameraobject. release();

代码现在运行良好!

关于java - 服务在线程中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27580129/

相关文章:

Java套接字文件传输线程失败,但在调试时可以工作

java - java final 是否有助于编译器创建更高效​​的字节码?

java - Java 中的正则表达式 : match groups until first symbol occurrence

java - 如何使用hadoop处理跨数据输入文件任务?

android - 如何将 Ionic 设置为默认呈现 iOS 样式?

java - 这里导航 API NavigationManager getEta() 总是返回无效/未知

Java Web App FutureTask 进度条

java - LAN 上的 Maven 设置

android - Android Studio 中的 Robojuice/Butterknife @InjectView 自动格式化问题

c# - 嵌套并行性能问题